c++ - SetupDiEnumDeviceInterfaces 不返回我们的蓝牙设备的接口(interface)

标签 c++ visual-studio bluetooth windows-10 bluetooth-lowenergy

当我们的程序到达这个 for 循环时,SetupDiEnumDeviceInterfaces 立即返回 false,因此永远不会运行 for 循环。这告诉我们 SetupDiEnumDeviceInterfaces 没有找到我们的蓝牙设备的接口(interface),即使我们检查了我们的设备已通过应用程序蓝牙 LE Explorer 与我们的计算机配对。我们已经检查过 AGuid 是我们设备的正确 UUID。我们在 Windows 10 上使用 Visual Studio Community 2017 和 BluetoothApis.h。我们如何让 SetupDiEnumDeviceInterfaces 返回我们设备的接口(interface)?

处理 GetBLEHandle(__in 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 而不是接口(interface)。 我使用了{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}

可是我需要 {0850302A-B344-4fda-9BE9-90576B8D46F0}

试试这个:)

关于c++ - SetupDiEnumDeviceInterfaces 不返回我们的蓝牙设备的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45175410/

相关文章:

c++ - 是什么导致 Visual Studio 2017 中的空文件名

visual-studio - 我在 VB 6.0 的项目菜单中缺少引用选项

git - 如何将 Git 存储库中可用的包添加到 Buildroot?

ios - GKPeerPicker Controller 中出现重复的对等名称

android - 使用 Xamarin 创建 Android 蓝牙终端连接到 HC-06 模块

c++ - SS_NOTIFY 和 WM_SETCURSOR

c++ - 链接到下载的软件包时出现许多LD链接错误

C++14线程/条件变量误解

c++ - 等效 typedef 之间的算术运算

c - 尝试从 Visual C 调用 Intel Visual Fortran 函数