- PR -

C#からC++へのプロセス間通信

投稿者投稿内容
なな
会議室デビュー日: 2005/10/12
投稿数: 13
投稿日時: 2006-06-09 15:02
渋木宏明さん、とっちゃんさん、ありがとうございます。

ご指摘のとおり、メッセージ送信先を明確にして、
lpDataをIntPtrに変更させて以下のとおりにしたところ受信することができました。


---------------サンプルの抜粋----------------------------------
[C#]送信側

//処理を行って送りたい情報をポストする
COPYDATASTRUCT cs = new COPYDATASTRUCT();
string strTest = "testTESTabcde!#$%&'あいうえお";
cs.dwData = new IntPtr(0);
cs.cbData = (uint)(strTest.Length * 2) + 1;
cs.lpData = Marshal.StringToHGlobalUni(strTest);

SendMessage(m.WParam, WM_COPYDATA, new IntPtr(0), ref cs); //WndProc内での処理

[C++]受信側

//変更なし

---------------ここまで----------------------------------

cbDataにサイズを入れる部分の見栄えが良くないですけど、
なんとか送りたい情報をC++で受信することができました。
皆様、ありがとうざいます。

スキルアップ/キャリアアップ(JOB@IT)