通常,在PC上,有一些非标准的COM端口可供终端仿真器使用。我希望能够扫描端口COM1-COM32以查看哪些(如果有)这些端口可以作为串行端口打开。我可以这么做,只需在所有这些端口上调用CreateFile()即可;然而,我实际上必须暂时打开/关闭(并影响DTR/RTS)端口。我可以检查一下COM端口是否可以在没有打开的情况下打开吗?
我想为可用端口的用户提供一个准确的列表。问题是我不想影响当前未被使用的端口的DTR/RTS线,因为可能有硬件连接到那些不希望在DTR/RTS上看到任何转换的端口。
有没有办法只问这个问题:“CreateFile()会成功吗?”在指定的COM端口?
我在这里知道的唯一一个是GetDefaultCommConfig(),虽然API足够简单,但我还没有能够得到这个返回成功迄今。有一个窍门吗?它只是一个字符串,后面是一个指向结构的指针,后面跟着一个指向填充大小值(结构体)的指针。似乎很简单,但我无法实现它的工作。 谢谢, – 2009-06-04 21:20:54
我使用的代码片段如下...如果您发现错误,请大声呼喊! :-) void somefunc(void) COMMMONFIG cc; DWORD bsize = sizeof(COMMCONFIG);如果(GetDefaultCommConfig(“COM1”,&cc,&bsize)== 0){0} ShowLastError(“GetDefaultCommConfig()”); return; } ... } – 2009-06-04 21:24:45