【文件属性】:
文件名称:进程间使用copydata完成通信
文件大小:4.24MB
文件格式:ZIP
更新时间:2017-07-23 08:27:55
copydata 进程间通信 代码
进程间通信最简单的方式就是发送WM_COPYDATA消息。
发送WM_COPYDATA消息:
SendMessage(接收窗口句柄, WM_COPYDATA, (WPARAM)发送窗口句柄, (LPARAM)&CopyData);
其中的CopyData为COPYDATASTRUCT结构类型,该结构定义如下:
typedef struct tagCOPYDATASTRUCT {
DWORD dwData; // Specifies data to be passed to the receiving application.
DWORD cbData; //Specifies the size, in bytes, of the data pointed to by the lpData member.
PVOID lpData; // Pointer to data to be passed to the receiving application. can be NULL.
} COPYDATASTRUCT, *PCOPYDATASTRUCT;
接收WM_COPYDATA消息:
只要用COPYDATASTRUCT *pCopyData = (COPYDATASTRUCT*)lParam;就可以了。接收方应认为这些数据是只读的。
由于发送方在接收方处理WM_COPYDATA消息完毕前都是处于等待中,所以接收方应当尽快处理WM_COPYDATA消息。
本资源中user1需要先发送,携带有主窗口句柄,然后recv根据窗口句柄回复,详情见代码
【文件预览】:
3_copydata
----RecvMsg()
--------RecvMsgDlg.h(1KB)
--------RecvMsg.h(1KB)
--------RecvMsg.cpp(1KB)
--------RecvMsg.rc(5KB)
--------resource.h(639B)
--------RecvMsg.clw(844B)
--------RecvMsgDlg.cpp(3KB)
--------Debug()
--------res()
--------StdAfx.cpp(209B)
--------RecvMsg.plg(248B)
--------RecvMsg.aps(34KB)
--------RecvMsg.dsp(4KB)
--------StdAfx.h(1KB)
----user1()
--------user1.rc(5KB)
--------resource.h(637B)
--------user1.opt(54KB)
--------user1.clw(818B)
--------Debug()
--------user1.aps(34KB)
--------user1.cpp(1KB)
--------user1.ncb(57KB)
--------user1.h(1KB)
--------res()
--------StdAfx.cpp(207B)
--------user1.dsw(731B)
--------user1Dlg.h(1KB)
--------user1.dsp(4KB)
--------StdAfx.h(1KB)
--------user1Dlg.cpp(3KB)
--------user1.plg(244B)
网友评论
- 还行吧!!!!!可以勉强凑活使用!