none
メールスロットについて教えてください RRS feed

  • 質問

  •  

    Visual Stdio6.0のVisual C++でメールスロットを利用したプロセス通信を行いたいのですが,GetMailslotInfo関数でメッセージが来るまで待っていて欲しいという場合,CreateMailslotのパラメータでMAILSLOT_WAIT_FOREVERを指定すれば良いのだと思ったのですが,メッセージが無くても関数をスルーしてしまいます。どのように対処すればいいのか分かる方教えてください。

     

    2008年2月25日 2:11

回答

  • メッセージが来るまで待つのであれば、ReadFile。

    そうでなければGetMailslotInfoの第3引数の「lpNextSize != MAILSLOT_NO_MESSAGE」になるのを待つかのいずれかではないでしょうか?

     

    前者の場合、ReadFileで止まってしまうので、受信側を終わらせるために、ダミーのデータを送信するなどしてやる必要があります。

    2008年2月26日 3:14

すべての返信

  • メッセージが来るまで待つのであれば、ReadFile。

    そうでなければGetMailslotInfoの第3引数の「lpNextSize != MAILSLOT_NO_MESSAGE」になるのを待つかのいずれかではないでしょうか?

     

    前者の場合、ReadFileで止まってしまうので、受信側を終わらせるために、ダミーのデータを送信するなどしてやる必要があります。

    2008年2月26日 3:14
  • ありがとうございます!

    メッセージ待ちするようになりました。なんだかサンプルとかチュートリアルが紛らわしくて間違って使っていたようです。

    アドバイスありがとうございました!

    2008年2月26日 9:00
  • こんにちは。中川俊輔 です。

     

    GENZ0さん、大変参考になる回答ありがとうございます。

     

    nannsiki.omさん、フォーラムのご利用ありがとうございます。

    問題が解決されたようなので、GENZ0さんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    問題解決につながる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    nannsiki.omさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

     

    2008年2月28日 6:27