c++ - 获取 COM 设备的描述

标签 c++ visual-c++ serial-port

我已经阅读了很多关于 SO 的帖子,但所有这些帖子都是使用 C# 或 MFC 编写的。我使用的是普通的 Windows 库,而不是 MFC 共享库或 ATL。

我可以轻松枚举可用的 COM 端口,但我不知道如何获取描述,例如,在 Windows 的设备管理器中看到的描述。我一直在阅读 MSDN,我最接近的是 SetupDiGetDeviceRegistryProperty() 但我想一定有一种快速的方法可以做到这一点。我还发现 Qt 有 QextSerialEnumerator::getPorts() 但因为我没有使用 Qt 我希望 WinAPI 会有类似的东西。

如果有人有这样做的片段,将不胜感激。

最佳答案

首先,您真正需要什么样的描述?您可以通过 EnumPorts() 和注册表方式获取有关 COM 端口的不同信息。例如,registry-way 将显示虚拟 COM 端口——这是 EnumPorts 做不到的。 第二件事 - 有 9 种不同的方式来枚举 COM 端口。它们的用法示例在这里 - http://www.naughter.com/enumser.html (我在我的项目中使用了这里的一些代码)。另外,请注意,作者使用了许多 msvc 特定的功能 - 用于内存分配等的 atl 容器。

关于c++ - 获取 COM 设备的描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052600/

相关文章:

c++ - 指向派生对象数组的基指针

c++ - 如何将对 Winform 成员函数的引用传递给不同线程的不同类?

c++ - 从数组类属性填充并执行回调

C++ 输出显示不正确, 'marks' 不显示

android - USB/RS232通信安全异常android.permission.sec.MDM_APP_MGMT

c - 发送短信 AT 命令

c++ - GCC 的矢量化失败

c++ - 如何跳转到匹配的#if/#elif/#endif 语句?

visual-c++ - OMF 和 COFF 格式有什么区别?

尝试使用 RXTXcomm jar 加载小程序时出现 java.lang.ExceptionInInitializerError