SendMessage进程通信问题?

寻找故事 2013-09-22 12:56:37
使用SendMessage从进程clt发送数据到进程srv,期中clt是基于对话框的MFC进程,srv是基于单文档的进程
clt中发送数据的代码
CWnd *pWnd = CWnd::FindWindow(NULL,L"无标题 - Srv");
LRESULT copyDataResult;
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = sizeof(SInfo);
cpd.lpData=(PVOID)&info;
copyDataResult = pWnd->SendMessage(WM_COPYDATA, (WPARAM)AfxGetApp()->m_pMainWnd->GetSafeHwnd(), (LPARAM)&cpd);

srv中在CMainFrame类中添加消息WM_COPYDATA,能够接收到数据。
但是我想在CSrvView类中直接接收到clt进程的数据应该怎么做?
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻找故事 2013-09-22
  • 打赏
  • 举报
回复
引用 8 楼 VisualEleven 的回复:
主框架CMainFrame转发到View类中即可。
传过来的数据乱码了 typedef struct SInfo { int x,y;// 坐标 int r,g,b; // 颜色 char szPath[100]; char szMsg[100]; SInfo() { x = y = r = g = b =0; szPath[0] = '\0'; szMsg[0] = '\0'; } }SInfo;
Eleven 2013-09-22
  • 打赏
  • 举报
回复
主框架CMainFrame转发到View类中即可。
华美乐章 2013-09-22
  • 打赏
  • 举报
回复
SendMessage/PostMessage是在一个进程内通信。进程之间通信参见楼上说法。 CSrvView获取CMainFrame()的指针,你可以使用AfxGetMainWnd() CMainFrame *pMain = (CMainFrame*)AfxGetMainWnd();
寻找故事 2013-09-22
  • 打赏
  • 举报
回复
引用 5 楼 oyljerry 的回复:
[quote=引用 2 楼 bububu3 的回复:] [quote=引用 1 楼 xuddk727 的回复:] 那就是进程间通讯啊,文件映射,管道,内存共享,剪贴板,socket都可行啊
现在的问题是,数据传到了CMainFrame类,但我要在CSrvView类中使用这些数据,该怎么办[/quote] CSrvView获取CMainFrame指针,GetMainFrame()[/quote] 关键我不知道怎么用,麻烦写段代码给我借鉴吧
oyljerry 2013-09-22
  • 打赏
  • 举报
回复
引用 2 楼 bububu3 的回复:
[quote=引用 1 楼 xuddk727 的回复:] 那就是进程间通讯啊,文件映射,管道,内存共享,剪贴板,socket都可行啊
现在的问题是,数据传到了CMainFrame类,但我要在CSrvView类中使用这些数据,该怎么办[/quote] CSrvView获取CMainFrame指针,GetMainFrame()
寻找故事 2013-09-22
  • 打赏
  • 举报
回复
引用 3 楼 xuddk727 的回复:
mainframe可以得到view的指针
是使用CView *pView = GetActiveView();这条语句吗? 我的CSrvView类中有一个m_sInfo成员变量,麻烦帮我写段代码,把接收到的数据赋值给m_sInfo 底下是消息响应的函数 BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) { return CFrameWndEx::OnCopyData(pWnd, pCopyDataStruct); }
许文君 2013-09-22
  • 打赏
  • 举报
回复
mainframe可以得到view的指针
寻找故事 2013-09-22
  • 打赏
  • 举报
回复
引用 1 楼 xuddk727 的回复:
那就是进程间通讯啊,文件映射,管道,内存共享,剪贴板,socket都可行啊
现在的问题是,数据传到了CMainFrame类,但我要在CSrvView类中使用这些数据,该怎么办
许文君 2013-09-22
  • 打赏
  • 举报
回复
那就是进程间通讯啊,文件映射,管道,内存共享,剪贴板,socket都可行啊

15,472

社区成员

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

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