CreateFile関数(Win32API)でCOM10以上を使う場合の注意点
2007.02.06 Tuesday
Windowsアプリケーション開発で、COM10以上のポートを使用する場合の注意点です。
通常は、昔の名残もあってCOMポートは1~4程度が常用範囲です。オープン処理はCreateFile関数を以下のように記述するのが一般的です。
実は、COM10以上を使うためにはゲイツちゃんのおまじないが必要なのです。
デバイス名の指定に"\\.\COM10"と指定すれば正常にオープンできます。
ちなみに、COM1~COM9の場合でも"\\.\"構文は有効ですので、無条件で付加すればスマートにコーディングできます。
MicroSoftのSDK32Help情報はこちら
通常は、昔の名残もあってCOMポートは1~4程度が常用範囲です。オープン処理はCreateFile関数を以下のように記述するのが一般的です。
CreateFile( "COM1", fdwAccess, 0, NULL, OPEN_EXISTING, 0, NULL ) ;ところがCOM10以上で使う場合は、"INVALID_HANDLE_VALUE"が返され、エラーとなります。
実は、COM10以上を使うためにはゲイツちゃんのおまじないが必要なのです。
デバイス名の指定に"\\.\COM10"と指定すれば正常にオープンできます。
CreateFile( "\\\\.\\COM10", fdwAccess, 0, NULL, OPEN_EXISTING, 0, NULL ) ;
ちなみに、COM1~COM9の場合でも"\\.\"構文は有効ですので、無条件で付加すればスマートにコーディングできます。
MicroSoftのSDK32Help情報はこちら





Comments