• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WriteFileで送信できたかの確認方法は?)

WriteFileで送信できたかの確認方法は?

このQ&Aのポイント
  • シリアルポートで非同期でバイナリを送信するプログラムを作成しています。
  • バイナリを送信したつもりなのですが、本当に送信できているのか分りません。
  • 送信が完了したのか確認するにはどうしたいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

WriteFileのリファレンスはちゃんと読まれましたか? オーバーラップをつかって書き込んだ場合hFileのオープン時にFILE_FLAG_OVERLAPPDを指定し、lpOverlappedに有効なポインタが渡された場合 WriteFileは 0を返します この時点では まだ転送が完了していないので GetLastErrorもERROR_IO_PENDINGを返し、まだデータ転送が終わっていないことを示します 転送できたどうかは GetOverlappedResultで取得するのですよ 本来ならhEventにCreateEventで作成したハンドルを設定しておいて WaitForSingleObjectなどでこのイベントハンドルがシグナル状態になるのを待機して、待機が解除されたらGetOverlappedResultで確認 といった手法でしょう 本当にオーバーラップが必要なのでしょうか? 通信相手のマニュアルにはサンプル例などがないのでしょう …

meeyooyoo
質問者

お礼

イベントを使って確認できました。 適切なアドバイス有難うございました!

関連するQ&A