WM_COPYDATA实现进程间数据共享
来源:互联网 发布:知识竞赛软件 编辑:程序博客网 时间:2024/06/03 12:59
实现进程间数据共享除了常用的内存文件映射外,对于一些非文件的数据共享可以直接使用消息WM_COPYDATA。
如果需要在进程A传递数据到进程B,简单的实现如下:
在进程A中:
CString strDataToSend = _T( "Hello" ); //需要传递的数据
HWND hWndReceived; //进程B的接收数据窗口对象
//COPYDATASTRUCT结构是WM_COPYDATA传递的数据结构对象
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strDataToSend.GetLength(); //传递的数据长度
cpd.lpData = (void*)strDataToSend.GetBuffer(cpd.cbData); //传递的数据地址
SendMessage( hWndReceived, WM_COPYDATA, 0, (LPARAM) & cpd );
strDataToSend.ReleaseBuffer();
在目标进程B中,先手动建立好函数声明和实现
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
//{{AFX_MSG_MAP(CMyWnd)
ON_WM_COPYDATA()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
映射函数:
BOOL CMyWnd::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
CString strRecievedText = (LPCSTR) (pCopyDataStruct->lpData);
return CMyWnd::OnCopyData(pWnd, pCopyDataStruct);
}
还可以参考MSDN文章Using Data Copy
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/dataexchange/datacopy/usingdatacopy.asp
- WM_COPYDATA实现进程间数据共享
- WM_COPYDATA实现进程间数据共享
- WM_COPYDATA实现进程间数据共享
- WM_COPYDATA实现进程间数据共享
- WM_COPYDATA实现进程间通信
- 转载资料-使用 WM_COPYDATA 在进程间共享数据(见关联的文章)
- 用WM_COPYDATA在进程间发送数据
- COPYDATA,WM_COPYDATA,进程间传数据
- 进程间通过WM_COPYDATA传递数据
- 用WM_COPYDATA实现进程间通信
- 利用WM_COPYDATA实现进程间通信
- WM_COPYDATA 消息实现进程间通信
- WM_COPYDATA 消息实现进程间通信
- WM_COPYDATA 消息实现进程间通信
- 使用WM_COPYDATA实现进程间通信
- 进程间通信WM_COPYDATA的基本实现
- 用WM_COPYDATA消息来实现两个进程之间传递数据
- 用WM_COPYDATA消息来实现两个进程之间传递数据
- 自己看的傻瓜笔记:交互位置
- zTree的联想[将数据表封装成自定义TreeNode,再将TreeNode生成json字串
- http://blog.csdn.net/wenlifu71022
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- JVM学习笔记--语法糖之 自动装箱的陷阱
- WM_COPYDATA实现进程间数据共享
- 性能优化之页面缓存(以Javascript方式缓存页面部件)
- Android学习—— Handler 的消息发送,在新的线程处理消息
- java学习:java基本数据类型
- Ext Js 3.2 自适应布局--FitLayout
- spring3.06 需要加载的jar包
- org.dom4j.DocumentException: Connection timed out 完美决解
- SKN程序皮肤更换效果查看器
- 在非控制台程序中使用控制台来调试程序。