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

CreateFileA を試す

Qtとmingwを使用しているときに同じ問題が発生し、CreateFileAに変更するとうまくいきました。すでに「\\\\.\\COM??」を使用していました。

于 2013-10-02T03:54:48.320 に答える