C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19

上传人:E**** 文档编号:89188485 上传时间:2019-05-21 格式:PPT 页数:66 大小:158KB
返回 下载 相关 举报
C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19_第1页
第1页 / 共66页
C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19_第2页
第2页 / 共66页
C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19_第3页
第3页 / 共66页
C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19_第4页
第4页 / 共66页
C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19》由会员分享,可在线阅读,更多相关《C++程序设计与应用 教学课件 ppt 作者 周仲宁 2 courseware19(66页珍藏版)》请在金锄头文库上搜索。

1、第19章 组件对象模型,C+高级编程,本章主要教学内容,COM的发展历史,软件开发工具的发展历程。 COM的基本理论:组成元素、实现函数和服务。 ActiveX的组成:ActiveX容器、 ActiveX服务器、 ActiveX自动化应用程序、 ActiveX控件、 ActiveX文档和ActiveX平台。,19.1 COM的历史足迹,COM:Component Object Model组件对象模型,组件对象模型技术是继模块化、结构化,面向对象开发方法之后,发展起来的又一新的软件开发方法。 其主要思想是将一个对象的外观(接口)同其工作方式(实现)分离开来,这一封装思想应用到二进制层次上,使得我

2、们可以在COM架构下开发出各种各样的功能专一的软件模块,然后根据需要将其装配起来构成复杂的应用系统,以最大程度地实现模块的复用。,19.1 COM的历史足迹,COM是关于如何建立组件以及如何通过组件建构应用程序的一个规范。 COM标准包括规范和实现两大部分。COM规范是一套为组件架构设置标准的文档,它定义了组件与组件之间的通信机制,这些规范不依赖任何特定的语言和操作系统。COM实现部分是一个COM库的API。它为COM规范的具体实现提供核心服务。,COM本质上是客户机/服务器(C/S)模式。当客户通过传递一个组件类的CLSID(Class Identifier)请求其服务时,Windows通过

3、注册表透明地查找到组件对象地址,然后创建该组件对象,并把客户请求的接口指针回传给客户。,19.1 COM的历史足迹,19.1 COM的历史足迹,在COM模型中,客户请求服务时,只是通过GUID(Globally Unique Identifier 全局统一标识符)获取接口指针,从而调用其相应的成员函数。而COM对象对客户而言是不可见的,客户只是通过接口才感受到对象的存在。对客户而言,接口便是一切。,19.1 COM的历史足迹,COM接口规范规定,所有接口都必须直接或间接地从IUnknown接口继承。IUnknown接口只有3个函数:,用来维护对象的生存期管理。,QueryInterface(

4、):用于接口查询,,AddRef( ),Release( ),组件程序通常有两种实现形式:一种是动态链接库,运行时客户程序与组件程序运行在同进程地址空间,故也叫进程内组件;另一种形式是EXE文件,这种组件运行时,客户程序和组件程序运行在不同的进程地址空间,所以也叫作进程外组件。,19.1 COM的历史足迹,19.1 COM的历史足迹,语言无关性。它采用的是一种二进制代码级的标 准,而非源代码级的标准,用VC+写的COM可以用VB来调用; 进程透明性。客户与服务器既可以在一个进程中,也可不在一个进程中;,总的来说,COM的特点有:,19.1 COM的历史足迹,位置透明性。客户与服务器既可以在1台

5、机器上,也可跨越网络; 版本兼容。组件可以在不妨碍已有客户的情况下被升级。,19.1 COM的历史足迹,组件对象模型COM出现的历史原因: 剪贴板技术-DDE-OLE1.0-OLE2.0 -DCOM-ActiveX,19.1.1 OLE1.0,剪贴板技术最早在Apple公司的第一台Mac计算机上使用,后被Microsoft公司采用。,剪贴板技术最初是为了在两个应用程序之间进行数据共享而产生的。,19.1.1 OLE1.0,剪贴板相当于一个临时存储区,临时存放要共享的数据。共享数据先通过复制操作从一个应用程序存放到这个临时区域,再通过粘贴操作传递给另一个应用程序。这样就实现了两个应用程序之间数据

6、的共享。,应用程序A,剪贴板,应用程序B,复制,粘贴,19.1.1 OLE1.0,为解决剪贴板技术需要频繁进行剪切、复制和粘贴操作的缺陷,Microsoft又引入了DDE,动态数据交换技术。 通过DDE技术,开发者可以通过编写程序,让共享数据的双方进行通信,实现数据的共享。但DDE的缺陷是其实现很困难。所以该技术很快被OLE技术取代。,19.1.1 OLE1.0,OLE:Object Linking and Embedding 对象链接与嵌入,作为COM技术前身的OLE,其最初含义是指在程序之间链接和嵌入对象数据。它提供了建立混合文档的手段,使得那些没有太多专业知识的用户能够很容易地协调多个应

7、用程序完成混合文档的建立。,从用户角度:使得用户可以构建声、文、图、像、影于一体的复合文件。关于复合文件见附带文件。 从开发商角度:解决软件开发人员所面临的最大难题由于没有统一的协议标准,应用程序之间的相互通信实现起来很困难。,OLE的功能:,19.1.1 OLE1.0,OLE的目的就是实现这些通信协议的标准化。,19.1.1 OLE1.0,什么是对象链接与嵌入技术?,OLE技术是通过对象的链接或嵌入来实现数据共享的一门计算机技术。提供对象的链接或嵌入数据的应用程序称为服务器应用程序,接受对象的链接或嵌入数据的应用程序称为容器应用程序。 一个应用程序即可以是服务器应用程序,也可以是容器应用程序

8、。,19.1.1 OLE1.0,链接和嵌入的区别:,链接:对象链接是保存一个相对指针,该指针指向共享的数据文件,其他应用程序对文件的修改都会在文件中反映出来,其缺点是被链接的文件必需随包含文件移动,否则链接指针就会断裂。 采用对象链接技术,容器应用程序只保存链接指针,不保存共享的数据,当共享数据改变时,容器应用程序中的数据也跟着改变。,19.1.1 OLE1.0,嵌入:把服务器应用程序提供的共享数据保存在保留在容器应用程序中,这些数据随容器应用程序的变动而变动,对嵌入的数据的修改不影响容器应用程序环境以外的数据,即原始数据。 采用对象嵌入技术,容器应用程序将共享数据的一份拷贝保存在自己的文件中

9、,该数据与服务器应用程序中的原始数据不再有任何关系,容器应用程序对数据的修改不影响原来的数据。,1991年制定的OLE1.0规范主要解决多个应用程序之间的通信和消息传递问题,微软希望第三方开发商能够遵守这个规范,以使在当时的Windows平台上的应用程序能够相互协调工作,更大的提高工作效率。然而事与愿违,只有很少的软件开发商支持它。为此,微软于1993年发布了新的规范OLE2.0。,19.1.2 OLE 2.0,19.1.2 OLE 2.0,OLE2.0原有的基础上完善并增强了以下各方面的性能:,1OLE自动化:一个程序有计划地控制另一个程序的能力。 2OLE控件:小型的组件程序,可嵌入到另外

10、的程序,提供自己的专有功能。 3OLE文档:完善了早期的混合文档功能,不仅支持简单链接和嵌入,还支持在位激活、拖放等功能。,19.1.2 OLE 2.0,强大的功能使得很多的开发商开始支持新的OLE技术,因为微软在OLE2.0中建立了一个称为COM(Component Object Model即组件对象模式)的新规范。 OLE的相关名词见附件2。,19.1.3 分布式组件对象模型(DCOM),DCOM: Distributed Commponent Object Model 分布式组件对象模型,DCOM是Microsoft公司在1998年提出的又一种程序接口和编程概念,其发展历史见附件3。,1

11、9.1.3 分布式组件对象模型(DCOM),DCOM模型是一套用于分布式环境的COM对象,在DCOM环境中,位于一个网络上的一个COM对象可以与另一个网络上的COM对象进行通信。 DCOM建立在COM的基础之上,虽然只相差了一个D,但DCOM要比COM复杂得多。COM请求的服务只能在本地的计算机上使用,不能在远程计算机上使用。而DCOM即可以在Internet上使用,也可以在本地网上使用。,例如,可以为一个网站创建应用该技术的页面,页面中包括了一段能够在网络中另一台更加专业的服务器电脑上处理的脚本或者程序。使用DCOM接口,网络服务器站点程序就能够将一个远程程序调用(RPC)发送到一个专门的服

12、务器对象上,它可以进行必要的处理,并给站点返回一个结果。结果将被发送到网页浏览器上。,19.1.3 分布式组件对象模型(DCOM),DCOM是COM的扩展,是COM组件技术的无缝升级,以前在COM中开发的应用程序、组件、工具都可以移入分布式的环境中。DCOM将为程序开发者屏蔽底层网络协议的细节,开发者只需要集中精力于应用。,19.1.3 分布式组件对象模型(DCOM),DCOM替代了OLE远程自动控制。DCOM将很快在所有的主流UNIX平台和IBM的大型服务器产品中出现。,19.1.4 ActiveX,同早期的功能薄弱的OLE1.0相比,OLE2.0得到了很多软件厂商的支持。,许多程序设计人员

13、编写了大量的实现OLE自动化服务器功能的组件,这些组件一般不求功能齐全、强大,而是实现专门的功能,可以被其它程序编程控制,由此承袭OLE的名字称为OLE控件。它们在文件名中的扩展名一般为OCX(OLE Control Extension)。,微软刚刚赢得广大软件厂商的支持,使OLE技术深入人心,然而“人算不如天算”,国际互联网的超速发展让比尔盖茨始料未及。加上早期的OLE1.0不得人心,导致后来的人们总把在Word中插入一个图形当作OLE技术的全部,各类资料在介绍新OLE技术时命名也不统一,造成很大的混乱。针对这些情况,微软在1996年重新制订了一个关于OLE的规范OLE 96规范。,19.1

14、.4 ActiveX,这个规范扩展了 OLE控件的能力,并贯彻微软的Internet战略使它更易于在网络环境中使用,还考虑命名混淆的问题,重新给OLE控件贴上一个标签ActiveX控件。,不仅如此,以前的什么OLE文档也相应称为ActiveX 文档了。,19.1.4 ActiveX,总之,为了满足Internet战略,微软把OLE换成了ActiveX,企图使人们重新看待新的OLEActiveX,把它看做网络上的解决软件组件问题的标准。 许多在Windows上同微软合作得很好的厂商在开发新版本软件时都开始支持ActiveX技术,例如Delphi、PowerBuild等开发工具。原来同Window

15、s竞争的操作系统也开始支持ActiveX,例如Macintosh,甚至老对手OS/2上也可以使用ActiveX控件。,19.1.4 ActiveX,ActiveX技术也许真的会成为一个异种平台争相支持的规范,如果能够进一步完善ActiveX、采用更开放的策略以及微软不被卸成八大块的话。,19.1.4 ActiveX,19.1.4 ActiveX,Apple和IBM推行的OpenDoc,曾是ActiveX控件的主要竞争对手。现在OpenDoc的赞助企业,已正式宣告中止资助。大部分与 Microsoft对抗的企业,转而支持JavaBeans(基于Java的组件结构)。Microsoft的竞争对手,

16、千方百计要阻止MTS和NT称霸市场。他们正在快马加鞭地制订服务器上的组件标准,其中最有前途的是Enterprise JavaBeans。,19.1.4 ActiveX,什么是ActiveX?,一个ActiveX控件就是一个提供特定功能的二进制对象,就如同一个计算机程序一样,它以.ocx为文件扩张名,并具有某些属性和方法以及外界可以捕获的事件,对控件的控制就是通过这些属性、事件和方法来实现的。,19.1.4 ActiveX,也可以认为ActiveX是一种概念,就是将OLE扩展到Internet和Intranet上的一种表示方法,把Intranet和Internet当作外围设备。,ActiveX是以COM和OLE为基础的,ActiveX是宽松定义的、基于COM的技术集合,而OLE仍然仅指复合文档。当然,最重要的核心还是COM。,19.1.4 ActiveX,ActiveX的优点:,组件是与开发工具、开发语言无关的。,通过接口有效保证了组件的复用性。,组件运行效率高、便于使用和管理。,19.1.4 ActiveX,组

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号