问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

列举五种windows下进程间通讯方式

发布网友 发布时间:2022-04-24 12:28

我来回答

1个回答

热心网友 时间:2023-10-12 20:55

哈哈,选我吧!1、剪贴板CliPBoard:在16位时代常使用的方式,CWnd中提供支持
  2、窗口消息标准的Windows消息以及专用的WM_COPYDATA消息SENDMESSAGE()接收端必须有一个窗口
  3、使用共享内存方式(SharedMemory)
  a.设定一块共享内存区域
HANDLECreateFileMapping(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR)
  产生一个file-mapping核心对象
LPVOIDMapViewOfFile(
HANDLEhFileMappingObject,
DWORDdwDesiredAcess,
DWORDdwFileOffsetHigh,
DWORDdwFileOffsetLow,
DWORDdwNumberOfBytesToMap
);
  得到共享内存的指针
  b.找出共享内存
  决定这块内存要以点对点(peertopeer)的形式呈现每个进程都必须有相同的能力,产生共享内存并将它初始化。每个进程
都应该调用CreateFileMapping(),然后调用GetLastError().如果传回的错误代码是ERROR_ALREADY_EXISTS,那么进程就可以假设这一共享内存区域已经被别的进程打开并初始化了,否则该进程就可以合理的认为自己排在第一位,并接下来将共享内存初始化。
  还是要使用client/server架构中只有server进程才应该产生并初始化共享内存。所有的进程都应该使用
HANDLEOpenFileMapping(DWORDdwDesiredAccess,
BOOLbInheritHandle,
LPCTSTRlpName);
  再调用MapViewOfFile(),取得共享内存的指针
  c.同步处理(Mutex)
  d.清理(Cleaningup)BOOLUnmapViewOfFile(LPCVOIDlpBaseAddress);
CloseHandle()
  4、动态数据交换(DDE)通过维护全局分配内存使的应用程序间传递成为可能
  其方式是再一块全局内存中手工放置大量的数据,然后使用窗口消息传递内存指针.这是16位WIN时代使用的方式,因为在WIN32下已经没有全局和局部内存了,现在的内存只有一种就是虚存。
  5、消息管道(MessagePipe)
  用于设置应用程序间的一条永久通讯通道,通过该通道可以象自己的应用程序访问一个平面文件一样读写数据。
  匿名管道(AnonymousPipes)
  单向流动,并且只能够在同一电脑上的各个进程之间流动。
  命名管道(NamedPipes)
  双向,跨网络,任何进程都可以轻易的抓住,放进管道的数据有固定的格式,而使用ReadFile()只能读取该大小的倍数。
  可以被使用于I/OCompletionPorts
  6、邮件槽(Mailslots)
  广播式通信,在32系统中提供的新方法,可以在不同主机间交换数据,在WIN9X下只支持邮件槽客户
  7、Windows套接字(WindowsSocket)
  它具备消息管道所有的功能,但遵守一套通信标准使的不同操作系统之上的应用程序之间可以互相通信。
  8、Internet通信它让应用程序从Internet地址上载或下载文件
  9、RPC:远程过程调用,很少使用,因其与UNIX的RPC不兼容。
  10、串行/并行通信(Serial/ParallelCommunication)
  它允许应用程序通过串行或并行端口与其他的应用程序通信
  11、COM/DCOM通过COM系统的代理存根方式进行进程间数据交换,但只能够表现在对接口函数的调用时传送数据,通过DCOM可以在不同主机间传送数据。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 排球六人站位如何分配及如何轮转+战术打法 有谁知道用糖熬糖色是怎么熬的? 排球6个位置分别叫什么? 独立显卡共享内存的问题 排球场上的队员位置怎么安排的? windows环境下在qt中使用windows函数创建的共享内存,外部的c语言exe程序为什么无法 排球比赛中6个人怎样分工的??大致的比赛规则是怎样的...... 如何打开windows service创建的共享内存 排球比赛中有哪些站位 windows共享内存 结构体 windows如何获得所创建的共享内存的大小 共享内存,能够被多少个进程同时读取,window windows中怎样看显卡显存共享内存的大小? windows怎样通过信号量获得共享内存权限 windows查看共享内存怎么操作 如何查看windows中的共享内存 windows 共享内存有几种方式 为什么苹果手机接收不到微信发来的信息? ...微信不打开根本看不到信息,就是没有信息提示? 菠萝蜜变粘变滑了是坏了吗? 正规排球比赛场上队员站位规则 怎么熬糖色才颜色正? 排球比赛场上6名队员分前后排站立,获得发球权的队,6名队员必须按什么方向轮转一个位置 怎样熬糖色窍门窍门窍门 笔记本电脑运行内存2个G,共享内存,集成显卡,装windows7旗舰版,电脑可以带动不 糖色的具体熬制的方法 排球比赛站位 排球场上各个队员的站位,要图解的 如何熬糖色窍门 排球场上6个人的职责分别是什么 炒糖色的技巧是怎样的? 怎么熬糖色 排球比赛的站位规则是怎样的 排球有什么规则 如何站位 排球比赛在场上有哪几种位置? 高糖水果有哪些? 哪种水果含糖量最高 哪些水果糖分最高?哪些水果含糖最少? 含果糖的水果有哪些 含糖高的水果有哪些? 公务员是警察吗?