WM_COPYDATA 进程间传递参数的问题
来源:互联网 发布:社交网络电影讲的什么 编辑:程序博客网 时间:2024/04/27 22:34
我们首先定义下面的结构,
- #define BUFFER_SIZE MAX_PATH*4
- // struct for loading report
- typedef struct _REPORT_INFO
- {
- TCHAR reportFile[BUFFER_SIZE];
- TCHAR schemaFile[BUFFER_SIZE];
- TCHAR tablesFile[BUFFER_SIZE];
- TCHAR dataXmlFile[BUFFER_SIZE];
- TCHAR outputFile[BUFFER_SIZE];
- }REPORT_INFO,*PREPORT_INFO;
注意REPORT_INFO结构中的字符为字符数组,这样可以保证数据可以跨进程正确的传递,如果我们把REPORT_INFO修改为下面的样子:
- // struct for loading report
- typedef struct _REPORT_INFO
- {
- TCHAR* reportFile;
- TCHAR* schemaFile;
- TCHAR* tablesFile;
- TCHAR* dataXmlFile;
- TCHAR* outputFile;
- }REPORT_INFO,*PREPORT_INFO;
这样的数据结构在进程内是可以的,可以正确传递,但是如果是跨进程SendMessage,里面的reportFile等成员的内容不能正确传递。
- void SendMessage(TCHAR* reportFileName)
- {
- REPORT_INFO info;
- ZeroMemory( &info, sizeof(info) );
- ::wcscpy_s(info.reportFile,BUFFER_SIZE,(TCHAR*)reportFileName);
- COPYDATASTRUCT copy_struct;
- ZeroMemory( ©_struct, sizeof(copy_struct) );
- copy_struct.lpData = &info;
- copy_struct.dwData = 0;
- copy_struct.cbData = sizeof(info);
- ::SendMessage((HWND)hwnd,WM_COPYDATA,(WPARAM)NULL,(LPARAM)©_struct);
- }
- WM_COPYDATA 进程间传递参数的问题
- 进程间传递消息 WM_COPYDATA的用法
- 进程间通过WM_COPYDATA传递数据
- 使用WM_COPYDATA进行进程间通信的一个问题
- WM_COPYDATA 在不同进程间传递数据方式之一
- WM_COPYDATA 进程间传递数据(以字符串为例)
- MFC (通过WM_COPYDATA消息) 进程间通信以及数据传递
- 进程间通信WM_COPYDATA的基本实现
- WM_COPYDATA 进程间通信
- WM_COPYDATA两个对话框之间传递数据的乱码问题
- WM_COPYDATA实现进程间通信
- 发送WM_COPYDATA消息实现进程间的通信
- 进程间通信之WM_COPYDATA的基本实现
- 进程间传递钩子消息时无法收到参数的问题
- 用WM_COPYDATA消息来实现两个进程之间传递数据
- 用WM_COPYDATA消息来实现两个进程之间传递数据
- 用WM_COPYDATA消息来实现两个进程之间传递数据
- 用WM_COPYDATA消息来实现两个进程之间传递数据
- SQL SERVER日志传送
- Server Application Unavailable 错误解决
- 软件工程实践
- "Programming Microsoft DirectShow for Digital Video and Television"中简介的翻译收
- php简单防刷计数器
- WM_COPYDATA 进程间传递参数的问题
- 揭露人性丑恶的五大心理实验
- 制作从屏幕右下角逐渐弹出的消息提示框
- FND:How to create a link in IE favorite to directly login into apps
- mdev的使用方法和原理。
- 对输入文本框的内容作出检测
- 需求从哪里来
- 禁止XP启动BEEP音
- Cost Update Troubleshooting