VC 进程间通信.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC 进程间通信

VC 进程间通信 一2010-05-07 10:31我们既可以用非标准的进程间通信技术,如Windows消息、内存映射和内存共享等,也可以用标准的通信技术。微软标准进程间通信技术的发展过程如下所述。(1)进程间通信初期自从有Windows操作系统后,剪贴板(Clipboard)首先解决了不同程序间的通信问题(由剪贴板作为数据交换中心,进行复制、粘贴的操作)。但是剪贴板传递的都是“死”数据,应用程序开发者得自行编写、解析数据格式的代码。于是动态数据交换(Dynamic Data Exchange,DDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新数据。但是,解决彼此之间的数据格式转换仍然是程序员沉重的负担。对象的链接和嵌入(Object Linking and Embedded,OLE)的诞生把原来应用程序的数据交换提高到“对象交换”,这样程序间不但获得数据,而且也可以获得彼此的对象,并且可以直接使用彼此数据内容。(2)OLE(对象链接与嵌入)1991年制定的OLE1.0规范主要解决多个应用程序之间的通信和消息传递问题,微软希望第三方开发商能够遵守这个规范,以便在当时的Windows平台上的应用程序能够相互协调工作,更大地提高工作效率。然而事与愿违,只有很少的软件开发商支持它。为此,微软于1993年发布了新的规范——OLE2.0,它在原有的基础上完善并增强了以下各方面的性能:①OLE自动化,一个程序有计划地控制另一个程序的能力;②OLE控件,小型的组件程序,可嵌入到另外的程序,提供自己的专有功能;③OLE文档,完善了早期的混合文档功能,不仅支持简单的链接和嵌入,还支持在位激活、拖放等功能。(3)ActiveX战略同OLE1.0相比,OLE2.0得到了很多软件厂商的支持。许多程序设计人员编写了大量的实现OLE自动化服务器功能的组件(不一定是EXE文件),这些组件一般不求功能齐全、强大,而是可以实现专门的功能,被其他程序编程控制,由此承袭OLE的名字,称为OLE控件。它们在文件名中的扩展名一般为ocx(OLE Control Extension)。微软刚刚赢得广大软件厂商的支持,使OLE技术深入人心,然而天不如人愿,国际互联网的超速发展让比尔·盖茨始料未及。加上早期的OLE1.0不得人心,导致后来的人们总把在Word中插入一个图形当作OLE技术的全部,各类资料在介绍新OLE技术时命名也不统一,造成很大的混乱。针对这些情况,微软在1996年重新制订了一个关于OLE的规 范——OLE 96。这个规范扩展了 OLE控件的能力,并贯彻微软的Internet战略使它更易于在网络环境中使用,还考虑命名混淆的问题,重新给OLE控件贴上一个标签——ActiveX控件。不仅如此,以前的什么OLE文档也相应称为ActiveX 文档了。总之,为了满足Internet战略,微软把OLE换成了ActiveX,企图使人们重新看待新的OLE——ActiveX,把它看成网络上的解决软件组件问题的标准。(4)OLE/ActiveX与COM/DCOM比较OLE/ActiveX名称比COM/DCOM更为我们熟悉,其实OLE和ActiveX是商业名称,它们的发展过程为OLE→ActiveX(网络OLE)。COM和DCOM是纯技术名词,它们是OLE/ActiveX基础,其发展过程为COM→DCOM(网络COM),其中COM(Component Object Model,组件对象模式)是在OLE2.0中建立的规范。OLE/ActiveX不仅可以实现进程之间的通信,而且可以创建进程,它们是“类厂”组件对象。3.2.2 应用程序与进程应用程序和进程在概念上是有一定区别的,前者是静态的程序代码,而后者是动态的实体。只有应用程序加载到系统中后才能成为一个进程。Windows进程分为独立进程和共享进程两种。一般情况下,人们把独立运行的程序称为进程,其实这只是独立进程。在实际情况下也常常遇到另一种情况,即一个应用程序可能启动多个进程,一个进程空间可以运行多个程序,这就是共享进程。例如,同一个应用程序重复运行就启动了多个进程;而在一个进程中调用其他程序,或者通过程序挂钩,这就使同一个进程空间里运行了多个程序。这里着重讨论独立进程之间的通信。3.2.3 进程之间通信的类型根据不同的标准,进程之间通信类型有不同的划分方法。实际中也有多种划分方法,这里只给出几种划分方法如下所述。(1)低级通信和高级通信·低级通信:只能传递状态和整数值(控制信息),包括进程互斥和同步所采用的信号量和管程机制。其第一个缺点为传送信息量小、效率低,每次通信传递的信息量固定,若传递较多信息则需要进行多次通信;第二个缺点是编程复杂,直接实现通信的细节,容易出错。·高级通信:能够传送任意数量的数据,包括共享

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档