the*_*isu 3 c++ winapi serial-port windows-7
我开发了一个简单的串行端口应用程序,适用于低于10的COM端口(COM9,COM8,... COM1).但是当我的设备连接到高于10的端口(例如COM11)时,它没有连接,我得到一个INVALID_HANDLE.我的代码是:
comport = CreateFileA(comPortName.toAscii(), GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(comport == INVALID_HANDLE_VALUE)
{
//Write exception code here
connectionStatus = CONNECTION_STATUS_DISCONNECTED;
}
Run Code Online (Sandbox Code Playgroud)
我的代码出了什么问题?有什么解决方案吗?
要到达COM端口> = 10,您可以使用驱动程序的符号链接.例如,对于COM10,它是\\\\.\\COM10.
试一试:
comport = CreateFileA("\\\\.\\COM10", GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(comport == INVALID_HANDLE_VALUE)
{
// Write exception code here
connectionStatus = CONNECTION_STATUS_DISCONNECTED;
}
Run Code Online (Sandbox Code Playgroud)
当然,这也适用于COM端口<10.