Windows 7 にて, シリアルポートにアクセスしようとすると,
CreateFile が失敗し, GetLastError が 2 を返す.
ERROR_FILE_NOT_FOUND, 「指定されたファイルが見つかりません。」というエラーらしい.
このサイトによると権限が無いときにこのエラーになるらしい.
プログラムを実行するときに, 右クリックし, 「管理者として実行(A)」をしたら, シリアルポートにアクセスできるようになった.
本来は, ユーザ権限で動作するプロセスにシリアルポートへのアクセスを許すような権限の変更を行うべきなのだろうが...
なお, C言語でのコードは以下の通り.
char s[] = "\\\\.\\COM1";
handle = CreateFile(s, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
バックスラッシュがたくさんあるが, C言語におけるエスケープが行われた後,
\\.\COM1
になる.
- iBuffalo BSUSRC0610BS は, FTDI のチップが入っていて, 好評らしい.
- エムサーブ HL-340 は, 変換名人のものと色が似ているが, 好評.
- 一方で変換名人の USB-RS232 は悪評. PID/VID は PL2303 だが載っているチップは別物との情報も!