C++ 确定串行端口使用情况
我想通过编程检查未与任何设备连接的可用串行端口 我尝试了以下代码,并能够获得可用的com端口,但不知道它是否被使用。如何确定C++ 确定串行端口使用情况,c++,winapi,mfc,C++,Winapi,Mfc,我想通过编程检查未与任何设备连接的可用串行端口 我尝试了以下代码,并能够获得可用的com端口,但不知道它是否被使用。如何确定 TCHAR szComPort[8]; HANDLE hCom = NULL; for (int i = 1; i <= 10; ++i) { if (i < 10) wsprintf(szComPort, _T("COM%d"), i); else wsprintf(szComPort, _T("\\
TCHAR szComPort[8];
HANDLE hCom = NULL;
for (int i = 1; i <= 10; ++i)
{
if (i < 10)
wsprintf(szComPort, _T("COM%d"), i);
else
wsprintf(szComPort, _T("\\\\.\\COM%d"), i);
hCom = CreateFile(szComPort,
GENERIC_READ|GENERIC_WRITE, // desired access should be read&write
0, // COM port must be opened in non-sharing mode
NULL, // don't care about the security
OPEN_EXISTING, // IMPORTANT: must use OPEN_EXISTING for a COM port
0, // usually overlapped but non-overlapped for existance test
NULL); // always NULL for a general purpose COM port
}
TCHAR-szComPort[8];
句柄hCom=NULL;
对于(int i=1;i与USB不同,没有可靠的方法来检查串行(RS232)端口是否连接。通常只使用TD、RD和接地(发送/接收)。即使连接了其他引脚,它们的使用也没有很好的标准化。您有两个问题需要解决:1)您将使用什么方法来判断串行端口是否连接到设备?2) 您将使用什么代码来实现该方法?第一个问题没有一个正确的答案,这取决于你的外部问题,你没有提到。它不会在10点停止。寻找未连接的端口是毫无意义的。他们永远不会做任何有用的事。