プロが教える店舗&オフィスのセキュリティ対策術

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"まで、対応しているんでしょうか。

A 回答 (1件)

もしかするとOSによるかもしれませんが、


たしか、単にその記載ではCOM9までしか対応しておらず
COM10以上を指定する場合は「\\.\」というプレフィックスを
付ける必要があったように思います。
C言語のリテラルで書くと "\\\\.\\COM10" のような形ですね。

■おまけ
仮想COMポートソフトウェアを利用すれば、
実際にいろいろなポート名で試してみることが出来ます。

私はよく「com0com」というソフトを利用しています。
これは内部で接続された仮想COMポートのペアを作成するもので、
1台のPC内で送受信のテストをする際にも便利です。
http://sourceforge.net/projects/com0com/files/co …

64bitのOSで利用する場合はデジタル署名されていないドライバは
特別なことをしないとインストールできませんので、
デジタル署名された v2.2.2.0 の signed 版が簡単に利用できるかと思います。

GUIによる設定ダイアログがありCOMポート名称を指定できますが、
そこで「enable buffer overrun」と「enable exclusive」の設定をONにすると
実際のCOMポート動作に近くなるかと思います。

この回答への補足

情報ありがとうございます。
詳細情報ありました。
http://support.microsoft.com/kb/115831/ja

COM1~COM9まで使用できるDLLがあるので、試してみましたがダメでした。
XP以降は適用外みたいです。

補足日時:2013/12/29 06:41
    • good
    • 0
この回答へのお礼

さらに情報探していたら、分かりました。
XPの場合、
"\\.\COM15"
こんな記述でOKでした。

DLL自作しないで済みました。
ありがとうございまいた。

お礼日時:2013/12/29 06:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!