シリアルポートを開く CreateFile 関数

サンプルプログラム

    HANDLE hCom;

    hCom = CreateFile(
        "COM1",
        GENERIC_READ | GENERIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL
    );

解説

"COM1"

シリアルポートの名前を指定します。 Windowsマシンでは、シリアルポートには順番に"COM1"、"COM2"...という名前がついているので、 この名前で指定します。

GENERIC_READ | GENERIC_WRITE

GENERIC_READ は読み取りアクセスの指定です。 同様に、GENERIC_WRITE は書き込みアクセスの指定です。 読み書き可能にするには、両方を指定します。

0

共有モードの指定です。 共有はしませんので、"0"を指定します。

NULL

取得したハンドルを子プロセスへ継承することを許可するかどうかを指定するようです。 継承しないので、"NULL"を設定します。

OPEN_EXISTING

ファイルの扱い方を指定します。 シリアルポートのように、最初から存在しているポートに関しては、 "OPEN_EXISTING"を指定します。

FILE_ATTRIBUTE_NORMAL

このファイルに特に属性を設定しません。

非同期で通信する場合には、FILE_FLAG_OVERLAPPED を指定します。

NULL

「テンプレートファイルに対して GENERIC_READ アクセス権を備えているハンドルを指定します」 と書いてありました (何のことやらさっぱりです)。 シリアル通信では"NULL"を指定するようなので、そのようにしておきます。

hCom

シリアルポートを開けることに成功すると、 関数 CreateFile はファイルハンドルを返します。 シリアルポートを閉じるときには、 このハンドルで指定する必要があります。

シリアルポートを閉じる CloseHandle 関数

サンプルプログラム

    CloseHandle( hCom );

解説

CloseHandle( hCom )

シリアルポートを閉じるには、 関数 CreateFile の戻り値のハンドルを用います。 ここでは、hCom がハンドルの場合の例をあげておきました。

参考文献

since 2004/06/24(Thu)

BorlandC++Compilerの目次へ

トップページへ

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送