VC跨进程数据(结构体)传递-WM_COPYDATA
两个测试程序,都是MFC基于对话框的应用程序,一个是发送者,一个是接收者。
两个程序都使用同一个结构体:
typedef struct
{char imsi[20];char options[512];
}_tagResult;
发送者:
按钮点击事件:
void CCardXSenderDlg::OnButton1()
{HWND hwnd = ::FindWindow(NULL, "CardXApp");if(hwnd){static _tagResult result;static COPYDATASTRUCT sendData;ZeroMemory(&result, sizeof(_tagResult));strcpy(result.imsi, "result_imsi0");strcpy(result.options, "result_options0");ZeroMemory(&sendData, sizeof(sendData));sendData.lpData = &result;sendData.cbData = sizeof(result);::SendMessage(hwnd, WM_COPYDATA, NULL, (LPARAM)&sendData);
// ::PostMessage(hwnd, WM_COPYDATA, NULL, (LPARAM)&sendData); // can't use ::PostMessage()}
}
接收者就是一个 WM_COPYDATA的实现函数:
BOOL CCardXAppDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{CString msg;_tagResult result;memcpy(&result, pCopyDataStruct->lpData, sizeof(result));msg.Format("imsi=[%s], options=[%s]", result.imsi, result.options);MessageBox(msg);return CDialog::OnCopyData(pWnd, pCopyDataStruct);
}
完成了上面的工作就可以测试了,只要点击发送者的按钮,接收端就可以接收到发过来的消息了。
注意:发送WM_COPYDATA消息时,必须使用SendMessage,不能使用PostMessage,否则接收端会收不到消息的。
VC跨进程数据(结构体)传递-WM_COPYDATA相关推荐
- linux进程内存结构体,Linux下网络编程(3)——进程间通信(IPC),共享内存,传递结构体数据...
1. 前言 多进程,总有一些交互要做,不可能各自独立. 这里是最简单的例子.一个写入,一个读取. 一个建立共享内存,写入数据. 一个读取共享内存的内容. 2. 简单例子代码 twriter.cpp 代 ...
- JNA Pointer结构体传递
我们在C++转JAVA代码的时候有时会遇到指针的转换,这里给出类型转换图: Native Type Java Type Native Representation char byte 8-bit in ...
- c# 与c++接口间调用时传递结构体
复杂结构体的传递 1. 输出参数,结构体作为指针传出 非托管部分代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 ...
- 驱动下通过进程PID获得进程名 (动态获取ImageFileName在EPROCESS结构体中的相对偏移)...
思路 进程EPROCESS结构体中含有进程名ImageFileName(需求处ImageFileName在EPROCESS结构体中的相对偏移)-->获得进程EPROCESS-->通过进程句 ...
- QT:复杂结构体不同窗口间传递
QT:复杂结构体不同窗口间传递(父传子,子传父) (父传子) 在写程序时,难免会碰到多窗体之间进行传值的问题,今天主要谈一下复杂结构体传值的问题(网上有很多博客,看的头疼,本篇进行详细解读). 具体原 ...
- linux结构体转qbytearray,QByteArray储存二进制数据(包括结构体,自定义QT对象)
因为利用QByteArray可以很方便的利用其API对内存数据进行访问和修改, 构建数据库blob字段时必不可少; 那如何向blob内写入自定义的结构体和类 //自定义person结构体 typede ...
- 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态
介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...
- 结构体struct的自然对齐问题(经典)
结构体struct的自然对齐问题下面的机构体 struct A { char c; int i; char cc; }; 它的sizeof()是多少呢? 如果是紧凑对齐的话,当 ...
- OS / Linux / 文件描述符以及 file 结构体
零.前言 程序可以理解为硬盘上的普通二进制文件:进程是加载到内存中的二进制文件,除了加载到内存中的二进制文件外,还附有所有对于该二进制文件描述信息的结构体,描述该进程的结构体叫PCB(进程控制块),在 ...
最新文章
- 【深度学习】你不知道的车牌识别系统
- 揭秘一线互联网企业 前端JavaScript高级面试
- js获取当前日期星期几
- java长连接例子_java实现长连接
- 计算机中年级排名怎么操作,智学网如何查看年级排名 智学网看年级排名方法【详解】...
- 【4】协同过滤算法的原理与实现
- WPF Splash Screen 和启动速度相关资料
- linux中启动不了服务,Linux系统xinetd服务启动不了
- wptx64能卸载吗_电脑可以卸载bonjour软件吗?详细介绍bonjour软件
- 【鱼眼镜头5】[中央全向相机畸变模型]:统一相机模型,四阶多项式对统一相机模型进行建模
- 解决:IDEA2017/2019与Maven3.6.3不兼容的导致的unable to import maven project: see logs for details问题
- IQ FMEA-失效模式及影响分析
- 读懂了鱼玄机,就读懂了爱情
- STM32F072RB 实作笔记(一)- Keil 安装
- mcu AD采样值和物理值
- C语言左移右移操作符详解
- OpenCASCADE7.6编译
- 美式期权损益图matlab,一看就懂,盈亏全在图上了,超实用的期权损益图绘制
- Mac电脑搭建wordpress教程
- C# Word文档添加水印
热门文章
- 回归分析检验_回归分析
- leetcode357. 计算各个位数不同的数字个数(回溯)
- onclick判断组件调用_从子组件Onclick更新状态
- android开发使用c+_如何在Android项目中开始使用C ++代码
- ux设计师怎样找同类产品_没有预算? 别找借口。 便宜的UX上的UX 2:让我们开始构建。...
- 机器学习模型 非线性模型_调试机器学习模型的终极指南
- 大数据(big data)_如何使用Big Query&Data Studio处理和可视化Google Cloud上的财务数据...
- 唯一约束(UNIQUE_KEY)
- 带参数的URLconf
- linux 下 安装 matplotlib 版本依赖(旧版本)