• 进程间通信(网络阅读笔记)


     

    1、参考《C# 两个独立exe程序直接通信》https://blog.csdn.net/weixin_39326815/article/details/87691942 ,在两个exe文件的两个不同的

          窗体之间 ,通过SendMessage, 发送消息。目的窗体句柄,通过FindWindow函数得到。

    2、C#与C/C++的交互 https://www.cnblogs.com/warensoft/archive/2011/12/09/Warenosoft3D.html

         主要还是通过调研动态库的方式

    3、参考《怎么能使两个EXE间能交互》http://www.myexceptions.net/c-sharp/66348.html

          使用共享内存方式(Shared Memory)

     a.设定一块共享内存区域
    HANDLE CreateFileMapping(HANDLE,LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR)
    产生一个file-mapping核心对象
    LPVOID MapViewOfFile(
    HANDLE hFileMappingObject,
    DWORD dwDesiredAcess,
    DWORD dwFileOffsetHigh,
    DWORD dwFileOffsetLow,
    DWORD dwNumberOfBytesToMap
    );
    得到共享内存的指针
    b.找出共享内存
    决定这块内存要以点对点(peer to peer)的形式呈现
    每个进程都必须有相同的能力,产生共享内存并将它初始化。每个进程
    都应该调用CreateFileMapping(),然后调用GetLastError().如果传回的
    错误代码是ERROR_ALREADY_EXISTS,那么进程就可以假设这一共享内存区 域已经被别的进程打开并初始化了,否则该进程就可以合理的认为自己 排在第 一位,并接下来将共享内存初始化。
    还是要使用client/server架构中
    只有server进程才应该产生并初始化共享内存。所有的进程都应该使用

    HANDLE OpenFileMapping(DWORD dwDesiredAccess,
    BOOL bInheritHandle,
    LPCTSTR lpName);
    再调用MapViewOfFile(),取得共享内存的指针
    c.同步处理(Mutex)
    d.清理(Cleaning up) BOOL UnmapViewOfFile(LPCVOID lpBaseAddress);
    CloseHandle()

    4、消息管道(Message Pipe)
    用于设置应用程序间的一条永久通讯通道,通过该通道可以象自己的应用程序
    访问一个平面文件一样读写数据。
    匿名管道(Anonymous Pipes)
    单向流动,并且只能够在同一电脑上的各个进程之间流动。
    命名管道(Named Pipes)
    双向,跨网络,任何进程都可以轻易的抓住,放进管道的数据有固定的格 式,而使用ReadFile()只能读取该大小的倍数。
    可以被使用于I/O Completion Ports

     5、【C#】给无窗口的进程发送消息 https://www.cnblogs.com/ahdung/p/5499570.html

        使用  PostThreadMessage,实际使用了线程之间的通信

     6、C++和C#进程之间通过命名管道通信(附源码) https://www.cnblogs.com/scucyno/archive/2008/10/16/1313053.html

    7、使用Winsock:Winsock入门 https://blog.csdn.net/Explorer_day/article/details/83088488

  • 相关阅读:
    String拷贝,构造和析构函数.
    得到透明画刷的颜色。
    程序关闭困难,析构函数执行不到的原因。
    CFileDialg文件后缀名的限制
    反转字符串数组,异或交换两个值
    C++ string在unicode下
    多线程中CString内存泄漏的解决方法。
    得到控件在窗口的位置
    学习进步的方法
    HyperLink与LinkButton的区别
  • 原文地址:https://www.cnblogs.com/xihong2014/p/14666038.html
Copyright © 2020-2023  润新知