读书人

关于DLL函数声明和调用的有关问题

发布时间: 2012-01-02 22:40:04 作者: rapoo

关于DLL函数声明和调用的问题
原函数的使用如下的语句声明如下:
long WINAPI Inventory(unsigned char *ComAdr,unsigned char *State,unsigned char *AFI,unsigned char *DSFIDAndUID,unsinged char *CardNum)
原函数的参数说明:
ComAdr:输入变量,读写器地址
State:输入变量,具体为:
'0x00:不带AFI的Inventory
'0x01:带AFI的Inventory
'0x02:不带AFI的InventoryScan(继续询查)
'0x03:带AFI的InventoryScan(继续询查)
'0x06:不带AFI的InventoryScan(新的询查)
'0x07:带AFI的InventoryScan(新的询查)
AFI:输入变量,当查询命令为selected模式时,需要输入电子标签的AFI数值
DSFIDAndUID:指向输出数组变量,每个数组单元为9个字节,包括8个字节的UID和1个字节的DSFID信息。数组中的有效数据总量为CardNum*9个字节.
CardNum:输出变量,电子标签的张数.

现在要在vb.net的一个模块(RR9000.vb)中声明如下:
Public Declare Function Inventory Lib "RR9000.dll " (ByVal ComAdr As Byte, ByVal State As Byte, ByVal AFI As Integer, ByVal DSFIDAndUID() As Byte, ByRef CardNum As Integer) As Integer


现在我在vb.net中声明后,使用如下
Dim CardNum As Integer
CardNum = &H0
Dim ComAdr As Byte = &HFF
Dim DSFIDAndUID(512) As Byte
Dim AFI As Byte
Dim State As Byte
State = &H6
AFI = &H0
back2 = Inventory(ComAdr, State, AFI, DSFIDAndUID, CardNum)
但提示的错误如下:“未将调用的对象实例化”。

请高手们帮我看看是什么问题。

[解决办法]
定义可以再改改,或有可能dll还要初始化其他功能参数,最好发个dll给人帮调试看具体原因.
[解决办法]
QQ: 740022

读书人网 >VB Dotnet

热点推荐