3

我正在尝试在 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错误代码2)。输出:

Invalid value: 2

如果我将端口名称更改为COM1(我拥有的另一个端口),则无法创建错误 1450 的文件,或者ERROR_NO_SYSTEM_RESOURCES.

我究竟做错了什么?我接受 MinGW 的替代品,这不是强制性的。

4

2 回答 2

2

COM 端口名称应该是\\.\COM1\\\\.\\COM1在转义反斜杠之后),而不是COM1.

于 2013-02-05T09:40:11.027 回答
0

尝试创建文件A

我在使用 Qt 和 mingw 时遇到了同样的问题,更改为 CreateFileA 对我有用。我已经在使用“\\\\.\\COM??”

于 2013-10-02T03:54:48.320 回答