使用 WM_COPYDATA 的疑问
bborn 2006-10-16 06:59:16 我想通过 sendmessage WM_COPYDATA 在两个线程之间传递一些数据
搜索了一些资料
但是收到的数据是乱码
不管发送端是什么数据
收到的都是 閾褀〒褀絮
真是不知道为什么
请大家帮忙看看
或给个能用的代码学习下
我的主要代码:
发送
string strMsg = "aaaa" ;
CopyDataStruct mystr = new CopyDataStruct();
mystr.dwData = (System.IntPtr) 0;
mystr.lpData = strMsg;
mystr.dwData = System.Text.Encoding.Default.GetBytes(strMsg).Length + 1;
SendMessage(ParenthWnd ,WM_COPYDATA ,0, ref mystr);
接收
protected override void DefWndProc(ref System.Windows.Forms.Message m)
{
switch(m.Msg)
{
//接收自定义消息 USER,并显示其参数
case WM_COPYDATA:
CopyDataStruct cds = (CopyDataStruct) m.GetLParam(typeof(CopyDataStruct));
Console.WriteLine(cds.lpData.ToString());
break;
default:
base.DefWndProc(ref m);
break;
}
}