2008年10月18日土曜日

別プロセスに文字列を渡す ( プロセス間通信? )

10月から、再びVC++の案件に携わっている。
約一年ぶりのVC++ということもあり、忘れていることが多くて悪戦苦闘の日々だ。
だが、それがいい。
 
さて、本題の「別プロセスへ文字列を渡す方法」だが、
凡ミスで1時間ほど無駄な努力をしてしまったので、メモしておく。
 
手法はいくつかあるが、今回は WM_COPYDATA というメッセージを使って実装したのだが、
何故か受信側が WM_COPYDATA を受け取ってくれなかった。
そのほかのメッセージは届くというのに!
 
で、よく調べてみたら SendMessage じゃないとメッセージが届かないということが判明。
PostMessage は、受信側の応答を待たずに送信側の処理が進むため、送信データの領域を開放するタイミングがわからないのが原因らしい。
メッセージ自体が届かないということが問題を切り分けしづらくして厄介だった。
 
 
 

0 件のコメント:

コメントを投稿