使用VB.NET进行RFID编程

时间:2011-12-01 06:04:53

标签: vb.net pinvoke rfid

我试图在我的最终项目中使用RFID非接触式智能卡(T8 / D8系列)。 但我有问题在我的表单中访问dcrf32.dll文件。

RFID包中包含3件事(因此:12张智能卡,一个USB端口和一张驱动程序CD)

在驱动程序CD中,有一些编程语言中有很多示例项目,除了VB.NET,我一个接一个地尝试它们,这就是它的工作。

有一个名为" win32-dl​​l"的文件夹,里面有3个文件(dcrf32.dlldcrf32.hdcrf32.lib)。我必须在我想要使用的每个示例程序中复制它们。 Image

他们在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中它可以正常工作。

我不知道。

1 个答案:

答案 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

...