做好了一个USB的VC程序,但是插入USB却连接不到HID,打不开通讯端口,请问是什么原因。

解决方案 »

  1.   

    呃 想问一下你是怎么找hid设备的  程序发来看下噻  
      

  2.   

    // 枚举符合该GUID的设备接口
    bSuccess= SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,index,
    &strtInterfaceData);
    if (!bSuccess)
    {
    ShowMessage("查找USB设备出错!\r\n");
    break;
    }
    得到的bSuccess为0,就未能打开设备。
      

  3.   

    GUID guidHID;
    HidD_GetHidGuid(&guidHID);
    其中
    void __stdcall
    HidD_GetHidGuid (
       OUT   LPGUID   HidGuid
       );
      

  4.   

    CString strShow;
    GUID guidHID;
    HidD_GetHidGuid(&guidHID);
    HDEVINFO hDevInfo = SetupDiGetClassDevs(&guidHID,NULL,0,
    DIGCF_PRESENT|DIGCF_DEVICEINTERFACE );
    if(hDevInfo==INVALID_HANDLE_VALUE)
    {
    ShowMessage("查找USB设备出错!\r\n");
    return;
    }
    else
    ShowMessage("找到USB设备.\r\n");
    SP_DEVICE_INTERFACE_DATA strtInterfaceData;
    strtInterfaceData.cbSize=sizeof(SP_DEVICE_INTERFACE_DATA);
    BOOL bSuccess ;
    for(int i=0;i<10;i++)
    {
    bSuccess= SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,index,
    &strtInterfaceData);
    if (!bSuccess)//就是这一步错了
    {
    ShowMessage("查找USB设备出错!\r\n");
    break;
    }
    else
    {
    if(strtInterfaceData.Flags==SPINT_ACTIVE )
    {
    temp.Format("%d 连接 \r\n",index+1);
    ShowMessage(temp);
    ShowMore(hDevInfo,strtInterfaceData);
    }
    }