当我们的程序到达此for循环时,SetupDiEnumDeviceInterfaces会立即返回false,因此永远不会在for循环中运行。这告诉我们SetupDiEnumDeviceInterfaces找不到蓝牙设备的接口,即使我们检查了设备是否已通过应用程序Bluetooth LE Explorer与我们的计算机配对。我们已经检查了AGuid是我们设备的正确UUID。我们正在Windows 10上使用BluetoothApis.h使用Visual Studio Community 2017。我们如何获取SetupDiEnumDeviceInterfaces来返回设备的接口?
HANDLE 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++) {
最佳答案
您最有可能使用了错误的GUID
我也有同样的问题。
我指出了类的GUID,而不是接口。
我使用了{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}
但是我需要
{0850302A-B344-4fda-9BE9-90576B8D46F0}
尝试这个:)
关于c++ - SetupDiEnumDeviceInterfaces不返回我们的蓝牙设备的接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45175410/