use*_*417 5 c++ winapi serial-port
我打开一个端口与设备通信并控制设备,但CreateFile()函数返回INVALID_HANDLE_VALUE.
GetLastError()返回2表示找不到指定的文件.
我的代码如下所示:
wsprintf( szPort, "COM%d", nPort );
m_hIDComDev = CreateFile(szPort,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
NULL);
if (m_hIDComDev == INVALID_HANDLE_VALUE)
{
DWORD err=GetLastError();
}
Run Code Online (Sandbox Code Playgroud)
为什么会出现这个问题?
问题是您没有lpFileName为串行端口指定正确的值.你应该使用这种格式:
"\\\\.\\COM%d"
Run Code Online (Sandbox Code Playgroud)
这将导致一个看起来像的字符串\\.\COM1,这是正确的格式.