• 締切済み

CreateFile関数でCOMポートが開けない

以下の手順でCOMポートをオープンすると、(4)のCOMオープンが必ず失敗します。 GetLastError関数でエラーコードを取得するとERROR_FILE_NOT_FOUNDが返ってきました。 心優しい方、(4)のCOMオープンを成功させる方法を教えていただけないでしょうか? (1)CreateFile関数でCOMポートをオープンし、オープン中にUSBを抜き差しする。 (2)PurgeComm関数で送受信バッファをクリア (3)CloseHandle関数でCOMポートのハンドルをクローズ (4)CreateFile関数でCOMポートを再度オープン←NG 以上、どうぞよろしくお願いいたします。

みんなの回答

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.1

USB接続タイプのCOMポートの場合、USBを抜けば COMは当然認識しなくなり、 さすと、”しばらくして”ドライバが認識してCOMポートが使えるようになりますよね その、しばらくして の部分はどのように処理されているのですか?

earlgreyow00
質問者

補足

ご回答ありがとうございます!! デバッグモードでしていた時は(4)のCOMポートオープン前で止め、デバイスマネージャで再度認識されたことを確認してからオープンしていました。 それでも同じエラーになりました。 普通に実行すると確かに"しばらくして"の間にCOMポートオープンしようとして失敗することもありえますね…気付きませんでした。