Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim HidGuid As Guid
        Dim DeviceInfoSet As Integer
        'Dim vbNullString As DBNull
        Dim MemberIndex As Integer
        Dim vbNullString As String = ""        Dim something As Long        Result = HidD_GetHidGuid(HidGuid) '取得HID群组的GUID
        DeviceInfoSet = SetupDiGetClassDevs(HidGuid, vbNullString, 0, (DIGCF_PRESENT Or DIGCF_DEVICEINTERFACE)) '取得所有HID信息的结构数组
        MemberIndex = 0        Do
            MyDeviceInterfaceData.cbSize = Len(MyDeviceInterfaceData)
            Result = SetupDiEnumDeviceInterfaces(DeviceInfoSet, 0, HidGuid, MemberIndex, MyDeviceInterfaceData) '识别每一个HID接口
            something = GetLastError()以下是调试的变量值:
HidGuid:{4d1e55b2-f16f-11cf-88cb-001111000030}
MyDeviceInterfaceData.cbSize:24
something:1784调用这个API函数的时候:SetupDiEnumDeviceInterfaces返回的Resutl总是为0,
MyDeviceInterfaceData下的:cbSize为24 Flags为0 InterfaceClassGuid为{00000000-0000-0000-0000-000000000000}
得到的错误是1784,貌似说:所提供的用户缓冲区对所申请的操作无效。
有没有调试过类似错误,求高见,求解决方法。

解决方案 »

  1.   

    〖1784〗-提供给请求操作的用户缓冲区无效。 
    GetLastError返回说明
      

  2.   

    能不能有什么具体的解决方案呀?就是枚举设备的时候无返回数据。
    程序是我从网上下载的VB6.0的(该程序运行正常),然后直接改成VB2010上编译就很多问题,现在到
    Result = SetupDiEnumDeviceInterfacesDeviceInfoSet, 0, HidGuid, MemberIndex,MyDeviceInterfaceData) 
    就出现以上这个问题了。
      

  3.   

    我也遇到这个问题,跟usb hid连起来,发不了数据,能把你的程序发给我,研究一下吗?
    [email protected]