17

1.进程间通信4种方式

2.OpenClipboard打开剪贴板

3.EmptyClipboard清空剪贴板,并把所有权分配给打开剪贴板的窗口

4.SetClipboardData设置剪贴板数据格式

5.GlobalAlloc从堆中分配内存

6.GlobalLock对全局内存对象加锁,返回内存指针

7.GlobalUnlock解锁内存对象

8.发送剪贴板步骤:

OpenClipboard打开剪贴板

EmptyClipboard清空剪贴板

SetClipboardData设置数据类型

GlobalAlloc分配可移动内存对象

GloabalLock锁定内存对象,获取内存指针

写入数据

GlobalUnlock解锁内存对象

SetClipboardData设置剪贴板数据

CloseClipboard关闭剪贴板

9.GetClipboardData获取剪贴板数据

10.IsClipboardFormatAvailable检测剪贴板是否包含指定类型数据

11.接收剪贴板步骤

OpenClipboard打开剪贴板

IsClipboardFormatAvailable判断是否有指定格式数据

GetClipboardData获取内存对象句柄

GlobalLock获取内存指针(已取出数据)

GlobalUnlock解锁内存对象

CloseClipboard关闭剪贴板

12.CreatePipe创建匿名管道,返回管道读写句柄

13.CreateProcess创建一个进程

14.ZeroMemory将制定内存块设为0

15.GetStdHandle获取标准句柄

16.ReadFile、WriteFile读写管道

17.OnInitialUpdate虚函数是窗口创建完成后调用的第一个函数

匿名管道使用步骤:

CreatePipe创建管道,返回读写句柄(安全性参数需要设置)

CreateProcess将读写句柄传给子进程

子进程通过GetStdHandle获取读写句柄

18.命名管道

19.CreateNamedPipe创建命名管道

20.ConnectNamedPipe允许客户端进程等待一个客户端连接到命名管道实例上

21.命名管道创建步骤:

CreateNamedPipe创建命名管道

CreateEvent创建事件对象放入OVERLAPPED结构体

ConnectNamedPipe等待客户端连接

WaitForSingleObject等待事件

22.WaitNamedPipe等待一个命名管道

23.客户端连接管道步骤

WaitNamedPipe检测管道是否可用

CreateFile连接管道

管道读写使用ReadFile,WriteFile

24.邮槽

23.CreateMailslot创建邮槽

在发送数据时用CreateFile打开邮槽,需要设置FILE_SHARE_READ供接收端读取

孙鑫MFC学习笔记17:进程间通信的更多相关文章

  1. 孙鑫MFC学习笔记12:文件读写

    1.指向常量的指针 2.指针常量 3.C语言对文件操作是在缓冲区,在缓冲区满或文件关闭时写入文件 读取相同 4.fflush刷新缓冲区,使缓冲区数据写入文件 5.fseek改变文件指针偏移量 6.st ...

  2. 孙鑫MFC学习笔记14:网络编程

    1.OSI 2.TCP/IP与OSI对应关系 3.Socket 4.客户机/服务器模式 5.Windows Sockets 6.套接字类型 7.面向连接的socket编程 8.面向无连接的socket ...

  3. 孙鑫MFC学习笔记13:文档

    1.CArchive类保存内存数据 2.CAchive类重载了>>与<<操作符,类似C++文件流 3.在OnNewDocument中通过SetTitle设置标题 4.字符串资源 ...

  4. 孙鑫MFC学习笔记11:保存图像

    1.CPtrArray指针数组 2.CPtrArray返回void指针,需要做类型转换 3.View类中的OnPaint调用OnPrepareDC和OnDraw,如果覆盖OnPaint,就不会调用On ...

  5. 孙鑫MFC学习笔记10:画图/贴图

    1.SetPixel在指定点设置像素 2.虚线.点线宽度必须为1 3.CColorDialog创建颜色对话框 4.需要设置CC_RGBINIT标志才能设置颜色对话框的默认颜色 5.CC_FULLOPE ...

  6. 孙鑫MFC学习笔记9:状态栏与工具栏编程

    1.在窗口创建之前就应该修改窗口的样式 2.单文档应用程序会把文档名作为应用程序标题,应该去掉FWS_ADDTOTITLE属性,然后修改lpszName为标题 3.在窗口创建完成后,可以通过SetWi ...

  7. 孙鑫MFC学习笔记7:对话框编程(上)

    1.DoModal创建模态对话框 2.Create创建非模态对话框(需要用ShowWindow显示出来) 模态:对话框显示,程序会暂停,直到对话框关闭 非模态:对话框显示,程序继续执行 3.对于模态对 ...

  8. 孙鑫MFC学习笔记6:菜单编程

    1.对菜单响应的顺序: 视类,文档类,框架类,应用程序类 2.消息的分类 3.CWnd继承自CCmdTarget类, 所以从CWnd派生出的类也可以接收WM_COMMAND消息 4.命令的消息路由 5 ...

  9. 孙鑫MFC学习笔记5:文本显示

    1.CreateSolidCaret添加一个插入符 参数:宽度,高度 如果设为0,就设为默认窗口边界的宽度和高度 2.GetSystemMetrics获取默认窗口边界的宽度和高度 3.Caret在创建 ...

随机推荐

  1. 关于基本类型值和引用类型值以及Vue官方API的array.$remove(reference)

    今天又是孟哥解惑. 数组里的元素也是指向内存地址么? 这个要分情况的. 无论a[0],a[2]在什么地方,只要其值是基本类型值,就是值的比较,只要其值是引用类型(对象),就是内存地址的比较. Vue官 ...

  2. EF架构~为IEnumerable接口添加增删查等操作,原因是IEnumerable导航属性更放心

    回到目录 对EF开发来说,导航属性肯定都用过,事实上,它是由VS IDE工具根据你的数据库关系结构自动生成的外键属性,在类视图中可以看到相关属性,它是以外键表名来标识的,如果是一对多的关系,那么,它会 ...

  3. vs如何在C++中调用Lua

    最近Cocos2dx的学习卡壳了,一般的照抄代码我不想写上来,但想示例也想得我头晕...为了放松大脑调整状态于是开始学习Lua.Lua的语法学习还是比较简单的,学过javascript或者vbscri ...

  4. 控制台屏蔽某console的输出

    有时候需要调试一个在线网站. 打开 chrome 控制台,其中有一些 console.log 不停的输出. 这样的话就影响了我们使用控制台调试页面. 那么怎样不让那一句(或多句)console.log ...

  5. Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt

    Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt Keyword 分组与聚合操作. 一个for做分组...里面的做聚合... 数据g操作查 ...

  6. salesforce 零基础学习(二十五)PickList简单联动操作

    有的时候,项目需要一些联动的操作,比如省和市之间的联动,不同的省应该显示不同的城市. 操作步骤如下: 1.新建provice字段,并且初始化相关的值 2.新建city字段,并且初始化相关的值 3.在P ...

  7. angularjs with node service

  8. JsBridge实现Javascript和Java的互相调用

    前端网页Javascript和Native互相调用在手机应用中越来越常见,JsBridge是最常用的解决方案. 在Android开发中,能实现Javascript与Native代码通信的,有4种途径: ...

  9. iOS $299刀企业证书申请的过程以及细节补充(二)

    上篇博客写的过程中,没有图,也没有相应的说明.这次再补充一些信息: 1.从 https://developer.apple.com/ios/enroll/dunsLookupForm.action 申 ...

  10. struts2DMI(动态方法调用)

    struts2动态方法调用共有三种方式: 1.通过action元素的method属性指定访问该action时运行的方法 <package name="action" exte ...