我试图在我的最终项目中使用RFID非接触式智能卡(T8 / D8系列)。 但我有问题在我的表单中访问dcrf32.dll文件。
RFID包中包含3件事(因此:12张智能卡,一个USB端口和一张驱动程序CD)
在驱动程序CD中,有一些编程语言中有很多示例项目,除了VB.NET,我一个接一个地尝试它们,这就是它的工作。
有一个名为" win32-dll"的文件夹,里面有3个文件(dcrf32.dll
,dcrf32.h
,dcrf32.lib
)。我必须在我想要使用的每个示例程序中复制它们。
他们在VB.6中也有例子,当我尝试运行它时,根本没有问题。有用。
(我还将这3个dcrf文件放在%windows%\System32
文件夹中)。
但是,当我尝试使用Visual Studio 2010构建我自己的项目并使用VB.NET编程语言时,我在调用dcrf32.dll文件时遇到问题。
我将VB6源代码迁移到VB.NET,在为dc_init函数提供参数时出错。 有谁能够帮我?我的错在哪里?
以下链接对解决我的问题非常重要: Here
我只是需要第一个按钮的帮助,而且你不必像VB 6示例程序那样帮助我使用其他按钮。
我只是想知道如何连接dcrf32文件,以及为什么在VB.NET中它有错误但在VB 6中它可以正常工作。
我不知道。
答案 0 :(得分:0)
您遇到的问题是处理您的声明函数以及VB.Net中整数和长整数等大小的变化。使用PInvoke查看此Link和此代码项目Article。
即。 VB6中的整数是VB.Net中的短整数,VB6中的长整数是VB.Net中的整数。声明中的%是一个VB6整数,并且会变短。
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
...