获取 COM 设备的描述

Yon*_*han 5 c++ serial-port visual-c++

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

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

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

小智 1

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