0

Win32 の CreateFile 関数を使用して COM ポートを開こうとしています。MSDN やいくつかのフォーラムでその方法に関するドキュメントを読みましたが、何をしてもエラー コード #2 (ポートが存在しません) が表示されます。私が現在持っているコードは次のとおりです。

m_hCom = CreateFile(
    "\\.\COM10",
    GENERIC_READ | GENERIC_WRITE,
    0,
    0,
    OPEN_EXISTING,
    FILE_FLAG_OVERLAPPED,
    NULL
);
if (m_hCom == INVALID_HANDLE_VALUE) {
    int error = GetLastError();
    return FALSE;
}

Visual Studio 2010 を使用しています。

私が間違っていることを教えてください。

4

5 に答える 5

3

次のようにスラッシュを追加してみてください。

"\\\\.\\COM10"

バックスラッシュは特殊文字であるため、文字列に必要なバックスラッシュごとに 2 つ挿入する必要があります。

于 2011-05-10T19:42:24.403 に答える
0

私はあなたが少し前に書き込もうとしているのと同じコードを書きました。10番目のCOMポートがあると言う場合は、余分なスラッシュがある限り機能するはずです。プロジェクトのプロパティウィンドウに移動して、文字セットをマルチバイト文字に変更してみてください。幸運を!

于 2011-05-14T04:04:53.187 に答える
0

これを試して:

CreateFile(L"COM1", ...);
于 2015-02-20T17:31:04.160 に答える
0

使用可能な COM ポートを反復処理または一覧表示する一時的なコードを作成することをお勧めします。

COM ポートの命名が正しくない可能性が高くなります。

于 2011-05-10T19:43:39.400 に答える