消息作用:
    在进程间共享数据(内部通过创建内存映射文件)

消息介绍:
需要用到的数据结构/类型:
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 消息的相关推荐

  1. java字符串转json取集合_Java中Json字符串直接转换为对象的方法(包括多层List集合)...

    使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-b ...

  2. java中判断字符串是否为数字的方法 StringUtil包函数

    java中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){   for (int i = 0; i &l ...

  3. ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

    ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...

  4. Qt 程序中获取 CPUID UUID 等系统信息的方法(win 平台,wmic)

    Qt 程序中获取 CPUID UUID 等系统信息的方法(win 平台,wmic) 最近的程序中要加入序列号注册的功能.这就需要获得电脑的一些基本信息,比如 UUID .或者 CPUID 一类的固定的 ...

  5. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuer ...

  6. (转)Shell中获取字符串长度的七种方法

    Shell中获取字符串长度的七种方法 原文:http://blog.csdn.net/jerry_1126/article/details/51835119 求字符串操作在shell脚本中很常用,下面 ...

  7. java list 对象 json字符串_Java中Json字符串直接转换为对象的方法(包括多层List集合)...

    使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-b ...

  8. Shell脚本中计算字符串长度的5种方法

    这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...

  9. 怎么将c语言作业保存到word,C++程序中导出Word文档的简易方法_c语言

    如果您要在应用程序中处理Word文档,可以参考MSDN. Lori Turner. Automating Microsoft Office 97 and Office 2000,该文内容详细全面,但是 ...

最新文章

  1. pandas使用groupby函数计算dataframe每个分组对应的数据行的个数(size of each group in dataframe, rows count of group)
  2. 将多窗体应用程序改造为仿Chrome形式的简易方法
  3. Linux_系统时间管理
  4. wstring与string相互转换
  5. 趣谈设计模式 | 工厂模式(Factory):利用工厂来创建对象
  6. php mysql书城_php在线书城 thinkphp源码(含数据库脚本)
  7. OSChina 周日乱弹 —— 在宅的路上越走越远。。。
  8. Docker环境安装
  9. PHP 使用 hprose RPC 服务 系列文章之三——Laravel5.8中使用Hprose
  10. 一次惨痛的微软AA面经历
  11. 艾灸神阙穴的神奇疗效
  12. 解决WinHTTP Web Proxy Auto-Discovery Service无法启动问题
  13. TIM ETR 配置
  14. 计算机不显示验证码,浏览器中网页验证码不显示的原因与解决办法
  15. html在线打印插件,jQuery简单易用的网页内容打印插件
  16. 解读微软互联网新战略(下)
  17. 《输赢》精彩段落总结
  18. Could not set parameters for mapping解决方法
  19. 国内各大互联网公司Java工程师笔经面经
  20. 标注工具——VGG Image Annotator (VIA)

热门文章

  1. 文件传送,如此简单--ESFramework 4.0 快速上手(13)
  2. 设计模式的七大设计原则:其五:开闭原则
  3. Linux下SVN创建新的项目
  4. 寻路的几种算法_Godot游戏开发实践之二:AI之寻路新方式
  5. 程序员“小白”打野升级指南,值得收藏
  6. JavaSE03、数组,引用,数组拷贝,二维数组
  7. 关于慢开始、拥塞控制、快重传、快恢复算法的理解
  8. 前窗玻璃膜贴了一周还有气泡_汽车玻璃膜贴全部好还是贴局部好?
  9. 自动生成的sitemap.html乱码,任意网站添加生成sitemap地图
  10. 快递管理系统 java_快递管理基于java物流快递管理系统设计.doc