HANDLE hCom;
hCom = CreateFile(
"COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
シリアルポートの名前を指定します。 Windowsマシンでは、シリアルポートには順番に"COM1"、"COM2"...という名前がついているので、 この名前で指定します。
GENERIC_READ は読み取りアクセスの指定です。 同様に、GENERIC_WRITE は書き込みアクセスの指定です。 読み書き可能にするには、両方を指定します。
共有モードの指定です。 共有はしませんので、"0"を指定します。
取得したハンドルを子プロセスへ継承することを許可するかどうかを指定するようです。 継承しないので、"NULL"を設定します。
ファイルの扱い方を指定します。 シリアルポートのように、最初から存在しているポートに関しては、 "OPEN_EXISTING"を指定します。
このファイルに特に属性を設定しません。
非同期で通信する場合には、FILE_FLAG_OVERLAPPED を指定します。
「テンプレートファイルに対して GENERIC_READ アクセス権を備えているハンドルを指定します」 と書いてありました (何のことやらさっぱりです)。 シリアル通信では"NULL"を指定するようなので、そのようにしておきます。
シリアルポートを開けることに成功すると、 関数 CreateFile はファイルハンドルを返します。 シリアルポートを閉じるときには、 このハンドルで指定する必要があります。
CloseHandle( hCom );
シリアルポートを閉じるには、 関数 CreateFile の戻り値のハンドルを用います。 ここでは、hCom がハンドルの場合の例をあげておきました。
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||