VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的
消息作用:
在进程间共享数据(内部通过创建内存映射文件)
消息介绍:
需要用到的数据结构/类型:
typedef struct tagCOPYDATASTRUCT {
ULONG_PTR dwData;
DWORD cbData;
PVOID lpData;
} COPYDATASTRUCT, *PCOPYDATASTRUCT;
结构体参数说明:
dwData(ULONG) 保存一个数值, 可以用来作标志等
lpData(void*) 待发送的数据的起始地址(可以为NULL)
cbData(DWORD) 待发送的数据的长度
消息的参数:
hWnd: 接收数据的窗口的句柄
wParam: 传送该数据的窗口句柄(NULL也无所谓)
lParam: COPYDATASTRUCT类型变量的地址
使用示例:
COPYDATASTRUCT cds;char msg[] = "女孩不哭";cds.dwData = 0;cds.lpData = msg;cds.cbData = strlen(msg)+1; //字符串请记得把'\0'加上, 不然就错了, 这里是ANSI字符串SendMessage(FindWindow("nbsg_class", NULL), WM_COPYDATA, 0, (LPARAM)&cds);
注意:如果要发送的是一个CString类型的字符串,那么可以这么做
CString str = _T("女孩不哭"); char* msg = str.GetBuffer(0);
这样就可以转化为 char*类型了
--------------------------------------------
接收端对该消息的一种可能处理:
BOOL CxuanzeDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) {// TODO: 在此添加消息处理程序代码和/或调用默认值COPYDATASTRUCT* pCDS = (COPYDATASTRUCT*)pCopyDataStruct;CString str((char*)pCDS->lpData);str.Format(_T("%s 标志:%d"), str, pCDS->dwData);AfxMessageBox(str);return CDialogEx::OnCopyData(pWnd, pCopyDataStruct); }
说明:
使用 WM_COPYDATA 消息的传递数据,其实是将要传递的数据复制到共享内存中去后,将地址传递给另一个进程.
在这个消息中,有一个标志dwData 这个数据是一个ULONG_PTR类型,无符号长整数,可以用作数据的标志.这样不同的标志,可以将传递的数据用作不同的用途!
转载于:https://www.cnblogs.com/lujin49/p/4907668.html
VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的相关推荐
- java字符串转json取集合_Java中Json字符串直接转换为对象的方法(包括多层List集合)...
使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-b ...
- java中判断字符串是否为数字的方法 StringUtil包函数
java中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i &l ...
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...
- Qt 程序中获取 CPUID UUID 等系统信息的方法(win 平台,wmic)
Qt 程序中获取 CPUID UUID 等系统信息的方法(win 平台,wmic) 最近的程序中要加入序列号注册的功能.这就需要获得电脑的一些基本信息,比如 UUID .或者 CPUID 一类的固定的 ...
- jquery.ajax的url中传递中文乱码问题的解决方法
jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...
- (转)Shell中获取字符串长度的七种方法
Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...
- java list 对象 json字符串_Java中Json字符串直接转换为对象的方法(包括多层List集合)...
使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-b ...
- Shell脚本中计算字符串长度的5种方法
这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...
- 怎么将c语言作业保存到word,C++程序中导出Word文档的简易方法_c语言
如果您要在应用程序中处理Word文档,可以参考MSDN. Lori Turner. Automating Microsoft Office 97 and Office 2000,该文内容详细全面,但是 ...
最新文章
- pandas使用groupby函数计算dataframe每个分组对应的数据行的个数(size of each group in dataframe, rows count of group)
- 将多窗体应用程序改造为仿Chrome形式的简易方法
- Linux_系统时间管理
- wstring与string相互转换
- 趣谈设计模式 | 工厂模式(Factory):利用工厂来创建对象
- php mysql书城_php在线书城 thinkphp源码(含数据库脚本)
- OSChina 周日乱弹 —— 在宅的路上越走越远。。。
- Docker环境安装
- PHP 使用 hprose RPC 服务 系列文章之三——Laravel5.8中使用Hprose
- 一次惨痛的微软AA面经历
- 艾灸神阙穴的神奇疗效
- 解决WinHTTP Web Proxy Auto-Discovery Service无法启动问题
- TIM ETR 配置
- 计算机不显示验证码,浏览器中网页验证码不显示的原因与解决办法
- html在线打印插件,jQuery简单易用的网页内容打印插件
- 解读微软互联网新战略(下)
- 《输赢》精彩段落总结
- Could not set parameters for mapping解决方法
- 国内各大互联网公司Java工程师笔经面经
- 标注工具——VGG Image Annotator (VIA)
热门文章
- 文件传送,如此简单--ESFramework 4.0 快速上手(13)
- 设计模式的七大设计原则:其五:开闭原则
- Linux下SVN创建新的项目
- 寻路的几种算法_Godot游戏开发实践之二:AI之寻路新方式
- 程序员“小白”打野升级指南,值得收藏
- JavaSE03、数组,引用,数组拷贝,二维数组
- 关于慢开始、拥塞控制、快重传、快恢复算法的理解
- 前窗玻璃膜贴了一周还有气泡_汽车玻璃膜贴全部好还是贴局部好?
- 自动生成的sitemap.html乱码,任意网站添加生成sitemap地图
- 快递管理系统 java_快递管理基于java物流快递管理系统设计.doc