大家好
不好意思問一下
因為我才剛開始用 QT , 很多東西都不熟!
我遇到一個問題, 我想要用 QT 來得到 HID
我有一個VS2008的範例 是可以用的
但是我想要把它用在 QT 上面, 可是有個問題一直沒辦法解決
底下是一部分我的 src,
我相信問題是出在這裡的
"
DWORD sizeOfDetailedData;
SP_DEVICE_INTERFACE_DETAIL_DATA *pHidDeviceDetailInterfaceData;
SetupDiGetDeviceInterfaceDetail(hidDeviceInfoSet, &hidDeviceIfaceData, 0, 0, &sizeOfDetailedData, 0);
pHidDeviceDetailInterfaceData = (SP_DEVICE_INTERFACE_DETAIL_DATA *) malloc((int)offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA, DevicePath) + (int)sizeOfDetailedData + 1);
pHidDeviceDetailInterfaceData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
if(!SetupDiGetDeviceInterfaceDetail(hidDeviceInfoSet, &hidDeviceIfaceData, pHidDeviceDetailInterfaceData, sizeOfDetailedData, &sizeOfDetailedData, 0))
{
SetupDiDestroyDeviceInfoList(hidDeviceInfoSet);
free(pHidDeviceDetailInterfaceData);
continue;
}
"
我跟 VS 2008 比較過, 當我印出 sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA ),
VS 2008 得到 5
QT 得到 6,
我不確定是不是這個問題, 但是我用 GetLastError()
QT 得到 1784 "The supplied user buffer is not valid for the requested operation. ERROR_INVALID_USER_BUFFER"
請問有人有遇過這個問題嘛?
還是有人可以給點 hint 呢?
謝謝~~
Tim