线程间通信的问题

thisisll 2005-05-20 10:46:22
我建立一个线程
再线程中
有一些CString要传递到主窗口

1 怎么自定义消息?
2 怎么传递CString?
...全文
118 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
thisisll 2005-05-20
  • 打赏
  • 举报
回复
如果我想用内存共享是不是
用AllocMem和相关的一些函数
能不能提供给我函数名
我在MSDN上查查
kugou123 2005-05-20
  • 打赏
  • 举报
回复
通过自定义消息和全局变量的方式都可以。
younggle 2005-05-20
  • 打赏
  • 举报
回复
1)全局变量,注意同步
2)共享一个成员变量,注意同步
3)使用自定义消息,使用SendMessage,建议不要使用 PostMessage (原因:变量生命期的问题)
  • 打赏
  • 举报
回复
#define WM_THREAD2WND_MSG WM_USER + 0x01
就定义了一个消息ID

CString strMsg;
在线程中用SendMessage(hWnd,WM_THREAD2WND_MSG,0,(LPARAM)(LPCTSTR)strMsg);

在主窗口中响应这个消息,并从LPARAM参数中解析出LPCTSTR字符串
trcd2000 2005-05-20
  • 打赏
  • 举报
回复
PostMessage就可以了啊
agchen81 2005-05-20
  • 打赏
  • 举报
回复
在主程序中建立一个共享数据段,在线程中写共享数据段就可以了
thisisll 2005-05-20
  • 打赏
  • 举报
回复
错了是GlobalAlloc

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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