Pregunta

Estoy tratando de usar la tarjeta inteligente sin contacto RFID (serie T8/D8) para mi proyecto final. Pero tengo problemas para acceder al archivo dcrf32.dll en mi formulario.

Hay 3 cosas incluidas en el paquete RFID (por lo tanto: 12 tarjetas inteligentes, un puerto USB y un CD de controlador)

En el CD del controlador, hay tantos proyectos de muestra en algún lenguaje de programación, excepto VB.NET, los probé uno por uno, y ese es el trabajo.

Hay una carpeta llamada "Win32-Dll", tiene 3 archivos dentro (dcrf32.dll, dcrf32.h, dcrf32.lib). Tengo que copiarlos todos en cada programa de muestra que quiero usar.Image

También tienen ejemplo en VB.6, cuando trato de ejecutarlo, sin problemas. Funciona. (También puse esos 3 archivos DCRF en el %windows%\System32 carpeta).

Pero, cuando trato de construir mi propio proyecto con Visual Studio 2010 y usando el lenguaje de programación VB.NET, tengo problemas para llamar al archivo DCRF32.DLL.

Migro el código fuente VB6 a VB.NET, tiene un error al dar parámetros a la función DC_INIT. Alguien puede ayudarme? ¿Dónde está mi culpa?

Aquí están los enlaces que son importantes para resolver mis problemas:Aquí

Solo necesito ayuda con mi primer botón, y no tienes que ayudarme con el otro botón como en el programa de ejemplo VB 6.

Solo quiero saber cómo conectar los archivos DCRF32, y por qué en VB.NET tiene error, pero en VB 6 funciona correctamente.

Me pregunto.

¿Fue útil?

Solución

El problema que está teniendo es lidiar con sus funciones de declaración y el hecho de que hay cambios en el tamaño de enteros y largos, etc. en VB.NET. Mira este Enlace y este proyecto de código Artículo Sobre el uso de Pinvoke.

es decir, un entero en VB6 es un corto en VB.NET, un largo en VB6 es un entero en VB.NET. El % en su declaración es un entero VB6 y se convertirá en un corto.

Declare Auto Function dc_init Lib "dcrf32.dll" (ByVal port as Short, ByVal baud As Integer) As Integer
Declare Auto Function dc_exit Lib "dcrf32.dll" (ByVal icdev As Integer) As Short
Declare Auto Function dc_request Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal mode as Short, tagtype As Integer) As Short
Declare Auto Function dc_anticoll Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal bcnt as Short, snr As Integer) As Short

...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top