我正在尝试使用Windows 7 x64计算机上的MinGW与虚拟串行端口进行通信。根据设备管理器,我的设备在COM27
处可用。我有这段代码:
#include <windows.h>
#include <stdio.h>
int main()
{
HANDLE hComm;
const WCHAR FileFullPath[] = {L"COM1"} ;
hComm = CreateFile( (LPCTSTR)FileFullPath,
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
if (hComm == INVALID_HANDLE_VALUE) {
printf("Invalid value: %d\r\n", GetLastError());
}
}
这给了我一个ERROR_FILE_NOT_FOUND
(error code 2)。输出:
Invalid value: 2
如果我将端口名称更改为COM1
(我拥有的另一个端口),则无法创建错误1450或ERROR_NO_SYSTEM_RESOURCES
的文件。
我做错了什么?我接受MinGW的替代品,这不是强制性的。
答案 0 :(得分:2)
COM端口名称应为\\.\COM1
(转义反斜杠后为\\\\.\\COM1
),而不是COM1
。
答案 1 :(得分:0)
尝试CreateFile
使用Qt和mingw时遇到了同样的问题,更改CreateFile也适合我。我已经在使用“\\\\。\\ COM ??”