CLR: .Net / Mono / Boo / Otros CLR > C#
Convertir código de VB6 a C#
(1/1)
gabio2:
Que tal un saludo a todos, actualmente estoy trabajando con los HandPunch modelo 3000, la empresa donde se compraron los HandPunch nos ofrecio un programa (WHVB), que sirve para resetear el HandPunch entre otras cosas, de igual manera ofrecieron documentación de la API rsidll32.dll (para poder extraer toda la información de los HandPunch), ahora bien ya pude resetear el canal de comunicación por el cual se conecta el HandPunch y obtener el Handler, ahora analizando el código fuente del programa WHVB que está hecho en VB6, me encontre con este problema:
--- Código: Visual Basic ---'' RSI_READER_INFO'Type RSI_READER_INFO model As Byte memory As Byte promDate As RSI_PROM_DATE promName As RSI_PROM_NAME pad1 As Byte sn As Long snp As Byte pad2 As Byte userCap As Integer dlogCap As Integer usersEnrolled As Integer dlogsPresent As Integer reserved As RSI_RI_RESERVEDEnd Type '' RSI_PROM_DATE'Type RSI_PROM_DATE pd(0 To RSI_LEN_PROM_DATE - 1) As ByteEnd Type '' RSI_PROM_NAME'Type RSI_PROM_NAME pn(0 To RSI_LEN_PROM_NAME - 1) As ByteEnd Type '' RSI_RI_RESERVED'Type RSI_RI_RESERVED rr(0 To RSI_LEN_RI_RESERVED - 1) As ByteEnd Type
Ya que tengo muy pocos conocimientos en VB6 estuve investigando y encontre que los Type equivalen a las estructuras en C#.net (struct), ahora el problema es que según las reglas de sintaxis en C#, no se permiten inicializadores de campo de instancia en las estructuras, entonces mi duda es, como puedo declarar lo siguiente en C# :
--- Código: Visual Basic ---'' RSI_PROM_DATE'Type RSI_PROM_DATE pd(0 To RSI_LEN_PROM_DATE - 1) As ByteEnd Type '' RSI_PROM_NAME'Type RSI_PROM_NAME pn(0 To RSI_LEN_PROM_NAME - 1) As ByteEnd Type '' RSI_RI_RESERVED'Type RSI_RI_RESERVED rr(0 To RSI_LEN_RI_RESERVED - 1) As ByteEnd Type
Según entendí, debo declarar objetos de tipo Byte[] y decirles de que tamaño van a hacer (RSI_LEN_PROM_NAME-1,etc....)
Alguien tiene alguna idea de como puedo resolverlo?
Saludos y gracias !
ematrix:
Prueba
http://www.icsharpcode.net/opensource/sd/
tiene una opcion para pasarlo a c#
Saludos
caperutxa:
No se si es esto lo que pides pero te paso dos enlace:
http://msdn.microsoft.com/en-us/library/ah19swz4.aspx
http://msdn.microsoft.com/en-us/library/saxz13w4.aspx
El segundo tiene un punto que dice explícitamente:
Structs can declare constructors that have parameters.
Si bien declaras los tipos para instanciarlos puedes usar un constructor. Te pongo un ejemplo que hay en otra página de la documentación oficial.
public struct CoOrds
{
public int x, y;
public CoOrds(int p1, int p2)
{
x = p1;
y = p2;
}
}
Si bien en este constructor le pasa parámetros puedes buscar otra manera para indicarle los valores iniciales
gabio2:
ematrix, la página que me enviaste es para un IDE gratuito para C# o VB (.NET), gracias de igual forma. :)
caperutxa, muchas gracias, sin embargo ya lo probe y no funcionó, debe ser alguna otra cosa lo que tengo mal, sin embargo tú ayuda me sirvió de mucho!!! gracias.
Navegación
Ir a la versión completa