1

我正在尝试将 RFID 非接触式智能卡(T8/D8 系列)用于我的最终项目。但是我在访问表单中的 dcrf32.dll 文件时遇到问题。

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

在驱动光盘中,除了VB.NET之外,还有很多其他编程语言的样例工程,我一一试了,就行了。

有一个名为“win32-dl​​l”的文件夹,里面有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 函数提供参数时出错。有谁能够帮助我?我的错在哪里?

以下是解决我的问题的重要链接: 这里

我只需要我的第一个按钮的帮助,而您不必像 VB 6 示例程序中那样帮助我处理另一个按钮。

我只是想知道如何连接 dcrf32 文件,以及为什么在 VB.NET 中有错误但在 VB 6 中它可以正常工作。

我想知道。

4

1 回答 1

0

您遇到的问题是处理您的声明函数以及 VB.Net 中整数和长整数等的大小发生变化的事实。查看此链接和有关使用 PInvoke 的代码项目文章。

即 VB6 中的 Integer 是 VB.Net 中的 Short,VB6 中的 Long 是 VB.Net 中的 Integer。声明中的 % 是一个 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

...
于 2011-12-01T06:30:05.143 回答