当我们的程序到达for循环时,SetupDiEnumDeviceInterfaces立即返回false,因此永远不会运行for循环。这告诉我们SetupDiEnumDeviceInterfaces没有找到我们的蓝牙设备的接口,即使我们通过应用程序蓝牙LE Explorer检查我们的设备是否与我们的计算机配对。我们已经检查过AGuid是我们设备的正确UUID。我们在Windows 10上使用带有BluetoothApis.h的Visual Studio Community 2017。我们如何让SetupDiEnumDeviceInterfaces返回我们设备的接口?
处理GetBLEHandle(GUID AGuid中的__)
{
HDEVINFO hDI;
SP_DEVICE_INTERFACE_DATA did;
SP_DEVINFO_DATA dd;
GUID BluetoothInterfaceGUID = AGuid;
HANDLE hComm = NULL;
hDI = SetupDiGetClassDevs(&BluetoothInterfaceGUID, NULL, NULL, DIGCF_DEVICEINTERFACE | DIGCF_PRESENT);
if (hDI == INVALID_HANDLE_VALUE) return NULL;
did.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
dd.cbSize = sizeof(SP_DEVINFO_DATA);
for (DWORD i = 0; SetupDiEnumDeviceInterfaces(hDI, NULL, &BluetoothInterfaceGUID, i, &did); i++) {
答案 0 :(得分:1)
很可能你有错误的GUID 我有同样的问题。
我指出了类的GUID而不是接口。 我使用 {e0cbf06c-cd8b-4647-bb8a-263b43f0f974}
但我需要 的 {0850302A-B344-4fda-9BE9-90576B8D46F0} 强>
试试这个:)