使用 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;

}

}
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bborn 2006-11-06
  • 打赏
  • 举报
回复
解决了
Knight94 2006-10-17
  • 打赏
  • 举报
回复
to 我想通过 sendmessage WM_COPYDATA 在两个线程之间传递一些数据

同一个进程中,还是不同进程中?
前者,用这个方法就有些太麻烦了;
后者的话,你的CopyDataStruct如何定义的。
bborn 2006-10-16
  • 打赏
  • 举报
回复
自己顶

110,501

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧