zoukankan      html  css  js  c++  java
  • 孙鑫MFC学习笔记17:进程间通信

    17

    1.进程间通信4种方式

    clip_image001

    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.命名管道

    clip_image002

    clip_image003

    19.CreateNamedPipe创建命名管道

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

    21.命名管道创建步骤:

    CreateNamedPipe创建命名管道

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

    ConnectNamedPipe等待客户端连接

    WaitForSingleObject等待事件

    22.WaitNamedPipe等待一个命名管道

    23.客户端连接管道步骤

    WaitNamedPipe检测管道是否可用

    CreateFile连接管道

    管道读写使用ReadFile,WriteFile

    24.邮槽

    clip_image004

    23.CreateMailslot创建邮槽

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

  • 相关阅读:
    css
    js
    css3
    css
    深浅拷贝
    index-数据结构/算法
    es6知识点
    在vscode中配置sass savepath
    计算机基础
    element-ui使用后手记
  • 原文地址:https://www.cnblogs.com/SkyFireITDIY/p/4372092.html
Copyright © 2011-2022 走看看