首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2012-01-02 
关于DLL函数声明和调用的问题原函数的使用如下的语句声明如下:longWINAPIInventory(unsignedchar*ComAdr,u

关于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

热点排行