sendmessage如何发送和接收CString变量?

wind19 2006-12-26 03:43:15
sendmessage如何发送和接收CString变量?我怎么弄都不对啊。
发送端
CString m_strMessage;
m_pWnd->SendMessage(m_nUserMessage,NET_READ,(LPARAM)&m_strMessage);

接收端
CString m_strShow;
m_strShow=*(CString *)lParam;
...全文
383 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind19 2006-12-27
  • 打赏
  • 举报
回复
谢谢各位,我已经解决了。
myadvice 2006-12-27
  • 打赏
  • 举报
回复

SendMessage是阻塞的,所以LZ使用局部变量也可以,不一定非要使用全局变量,因为不是用的PostMessage.
问题可能出在:
1、m_pWnd所在的窗口是否已经建立起来,并且能够接收消息
2、在m_pWnd中的OnMessage消息映射是否写对
3、在m_pWnd中的OnMessage消息处理函数是否写对void OnNetRead(WPARAM w, LPARAM l)
olidyu 2006-12-27
  • 打赏
  • 举报
回复
不能直接传指针吧,不安全,先把CString内容转到内存里去,再传内存指针
m_pWnd->SendMessage(m_nUserMessage,NET_READ,(LPARAM)(m_strMessage.GetBuffer()));
m_strMessage.ReleaseBuffer();

CString m_strShow;
m_strShow = (TCHAR *)lParam;
ProgrameMan 2006-12-27
  • 打赏
  • 举报
回复
CString m_strMessage;
m_pWnd->SendMessage(m_nUserMessage,NET_READ,(LPARAM)&m_strMessage);

接收端
CString *str = (CString*)lParam; //这么写看看?


ProgrameMan 2006-12-27
  • 打赏
  • 举报
回复
不设置成全局的就设置成某个生命周期比较长的对象的成员也可以
wind19 2006-12-27
  • 打赏
  • 举报
回复
只有这么一种办法吗,应该可以用sendmessage发送过去吧
zcp126 2006-12-27
  • 打赏
  • 举报
回复
用全局变量
wind19 2006-12-27
  • 打赏
  • 举报
回复
各位,帮忙一下
wind19 2006-12-26
  • 打赏
  • 举报
回复
同一个进程怎么发送和读取啊?
hamimelon 2006-12-26
  • 打赏
  • 举报
回复
转换成char* 安全点
littleXX 2006-12-26
  • 打赏
  • 举报
回复
同一进程内是可以的,
不同进程就麻烦了,SysAllocStringByteLen 可以利用
wind19 2006-12-26
  • 打赏
  • 举报
回复
那样很危险的,我想传递过去
ProgrameMan 2006-12-26
  • 打赏
  • 举报
回复
CString m_strMessage; 声明成全局的

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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