online net convert vb.net vb6 vb6-migration

convert - Conversión de un módulo VB6 a VB.NET



convert vb6 to vb.net online (3)

no puede declarar un tamaño inicial en VB.Net, puede establecer su tamaño más tarde utilizando la instrucción Redim en el constructor o cuando sea necesario

Structure AUDINPUTARRAY Public bytes() As Byte Public Sub New(ByVal size As Integer) ReDim bytes(size) '' set size=5000 End Sub End Structure

En Visual Basic .NET, no puede declarar que una cadena tenga una longitud fija a menos que use el atributo Clase VBFixedStringAttribute en la declaración. El código en el ejemplo anterior causa un error.

Usted declara una cadena sin una longitud. Cuando su código asigna un valor a la cadena, la longitud del valor determina la longitud de la cadena, vea http://msdn.microsoft.com/en-us/library/f47b0zy4%28v=vs.71%29.aspx . por lo que su declaración se convertirá

Private i As Integer, j As Integer, hWaveIn As Integer <VBFixedString(200)> Private msg As String

Ya casi termino de convertir un módulo de VB6 a VB.NET, pero estoy teniendo problemas con las siguientes 2 citas y me pregunto si hay alguna manera de hacerlo:

Structure AUDINPUTARRAY bytes(5000) As Byte End Structure

Estoy intentando cambiar esa línea de bytes a: Dim bytes (5000) como Byte, pero no me permite definir el tamaño en una estructura.

Aquí está el segundo:

Private i As Integer, j As Integer, msg As String * 200, hWaveIn As integer

No tengo ni idea de cómo convertir: msg As String * 200


Puedes hacer esto a través de atributos

Public Structure <StructLayout(LayoutKind.Sequential)> AUDINPUTARRAY Public <MarshalAs(UnmanagedType.ByValArray, SizeConst := 5000)> Bytes() As Byte End Structure


Sugeriría que, al refacturar tu código de VB6 a .net, mires otra vez si deseas emular el mensaje de texto fijo msg As String * 200 . Si estuvieras contando con la cadena de longitud fija para que pudieras cortar caracteres del final, y aún así tener un registro de 200 caracteres, es un código desordenado que depende de los efectos secundarios de una función.

Cuando convertimos desde VB6 (un proceso todavía en curso), aclaramos el propósito del código si establecemos explícitamente la cadena en un bloque de espacios de 200 bytes. Tal vez al declarar:

String msg = String('' '', 200)

(si eso es válido tanto en VB.net como en C #).