当我们的程序到达此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/

10-14 16:40
查看更多