我一直在阅读关于此的很多帖子,但所有帖子都在C#或MFC中。我正在使用普通的Windows库,而不是MFC共享库和ATL。
我可以轻松枚举可用的COM端口,但我不知道如何获取描述,例如,在Windows中的设备管理器中看到的。我一直在阅读MSDN,我最接近的是SetupDiGetDeviceRegistryProperty(),但我想必须有一个快速的方法来做到这一点。我还发现Qt有QextSerialEnumerator :: getPorts(),但由于我没有使用Qt,我希望WinAPI可以提供类似的东西。
如果某人有这样做的片段,我们将不胜感激。
答案 0 :(得分:0)
首先,您真正需要什么样的描述?您可以通过EnumPorts()&获取有关COM端口的不同信息。注册表的方式。例如,registry-way将显示虚拟COM端口 - 这是EnumPorts无法做到的。 第二件事 - 有9种枚举COM端口的方法。它们的用法示例在这里 - http://www.naughter.com/enumser.html(我在项目中从这里得到了一些代码)。另请注意,作者使用了许多特定于msvc的功能 - 用于内存分配的atl容器等。
答案 1 :(得分:0)
我只能说不使用setupDI WDM功能,如果你不完全知道你在做什么,这对我来说是回来但是检查windows DDK示例我认为你在设备管理器中看到的dll实现在/ ports ...
问题在于串口非常老,所以它们已被拖拽多年并一起入侵到Windows 7中,所以例如当你对COM端口进行更改时,你必须写入win。 ini,但win.ini不存在(我听到你说),因为任何“更改”都会被反弹回注册表。
如何,祝你好运..