- ベストアンサー
WIN32API CreateFileのCOMx
WIN32API CreateFile(…"COMx"…)のCOM番号「x」)は、1~256まで可能ですか。 MS-VC++でRS-232C通信のWIN32アプリケーションを作る必要が生じてきました。 VC++6.0やVS2005のシステムは所有していますが、WIN32アプリは初心者です。 (WIN32アプリが出来たらDLLに改造するつもりです。) http://www.saluteweb.net/~oss_winapi232.html ここにどなたかが、サンプルプログラムをアップされてます。 この中の("COM1")は、"COM1"~"COM256"まで、対応しているんでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
もしかするとOSによるかもしれませんが、 たしか、単にその記載ではCOM9までしか対応しておらず COM10以上を指定する場合は「\\.\」というプレフィックスを 付ける必要があったように思います。 C言語のリテラルで書くと "\\\\.\\COM10" のような形ですね。 ■おまけ 仮想COMポートソフトウェアを利用すれば、 実際にいろいろなポート名で試してみることが出来ます。 私はよく「com0com」というソフトを利用しています。 これは内部で接続された仮想COMポートのペアを作成するもので、 1台のPC内で送受信のテストをする際にも便利です。 http://sourceforge.net/projects/com0com/files/com0com/ 64bitのOSで利用する場合はデジタル署名されていないドライバは 特別なことをしないとインストールできませんので、 デジタル署名された v2.2.2.0 の signed 版が簡単に利用できるかと思います。 GUIによる設定ダイアログがありCOMポート名称を指定できますが、 そこで「enable buffer overrun」と「enable exclusive」の設定をONにすると 実際のCOMポート動作に近くなるかと思います。
お礼
さらに情報探していたら、分かりました。 XPの場合、 "\\.\COM15" こんな記述でOKでした。 DLL自作しないで済みました。 ありがとうございまいた。
補足
情報ありがとうございます。 詳細情報ありました。 http://support.microsoft.com/kb/115831/ja COM1~COM9まで使用できるDLLがあるので、試してみましたがダメでした。 XP以降は適用外みたいです。