在VB中调用API函数读取HID设备.   
  跟踪后发现是在   
  HidDevice   =   CreateFile   _   
  (DevicePathName,   _   
  GENERIC_READ   Or   GENERIC_WRITE,   _   
  (FILE_SHARE_READ   Or   FILE_SHARE_WRITE),   _   
  0,   _   
  OPEN_EXISTING,   _   
  0,   _   
  0)   
  没有返回正确的HidDevice,但在VB开发环境中为何可以得出正确的值?   
    
  真是奇怪!   

解决方案 »

  1.   

    我在VB下用API查USB设备(自己做的Device).
    在VB环境下运行正常,编译后的.exe文件运行就不正常了,发现是
            HidDevice = CreateFile _
                (DevicePathName, _
                GENERIC_READ Or GENERIC_WRITE, _
                (FILE_SHARE_READ Or FILE_SHARE_WRITE), _
                0, _
                OPEN_EXISTING, _
                0, _
                0)
    总返回-1
    但在VB环境下是运行正常的,能找到设备系统安装了win2kddk.exe
    SP6也安装了
    什么原因,有遇到过的指教一下现在我无奈用DirectX了,我就是简单查出设备,写\读数据,有现成VB实例原码的帮给下.先谢了.
      

  2.   

    楼主你的系统是XP的吧?这样CREATEFILE函数的调用就和我们通常看到的实例不太一样了
    HIDHandle = CreateFile _
                (DevicePathName, _
                GENERIC_READ Or GENERIC_WRITE, _
                (FILE_SHARE_READ Or FILE_SHARE_WRITE), _
                Security, _
                OPEN_EXISTING, _
                0&, _
                0)
    具体你自己在看看XP下的API函数的参数