下面这段代码是为了获取本机USB设备驱动handle的,可是逐句运行的时候,
SetupDiGerClassDevs返回值老是 INVALID_HANDLE_VALUE。
#pragma comment(lib,"setupapi") //ERROR linkerror 1120
#include<Windows.h>
#include<SetupAPI.h>
#include<iostream>
#include<initguid.h> //GUDI header
#include<Usbiodef.h> //USB GUID header
//USB 设备的GUID
BOOL GetDevs(HDEVINFO &hdevino) {
hdevino = SetupDiGetClassDevs((LPGUID)&GUID_DEVINTERFACE_USB_DEVICE, 0, 0, DIGCF_DEFAULT | DIGCF_DEVICEINTERFACE);
if (hdevino = INVALID_HANDLE_VALUE)
return false;
else
return true;
}
void EnumDevice(HDEVINFO &hdevino,SP_DEVINFO_DATA &DeviceInfoData) {
for (DWORD i = 0; SetupDiEnumDeviceInfo(hdevino, i, &DeviceInfoData); i++)
std::cout << "element is " << i << std::endl;
}
int main()
{
HDEVINFO deinfo;
SP_DEVINFO_DATA DeviceInfoData;
if (GetDevs(deinfo) == true)
{
std::cout << "succeed" << std::endl;
EnumDevice(deinfo, DeviceInfoData);
}
else {
std::cout << "fail" << std::endl;
}
return 0;
}
大侠们,帮帮忙把把问题所在,论坛新人,还没有币给大家。。sorry