ActiveX、COM、OLE的关系

    从时间的角度讲,OLE是最早出现的,然后是COM和ActiveX;从体系结构角度讲,OLE和ActiveX是建立在 COM之上的,所以COM是基础;单从名称角度讲,OLE、ActiveX是两个商标名称,而COM则是一个纯技术名词。

    自从Windows操作系统流行以来,“剪贴板”( Clipboard)首先解决了不同程序间的通信问题(由剪贴板作为数据交换中心,进行复制、粘贴的操作),但是剪贴板传递的都是“死”数据,应用程序开发者得自行编写、解析数据格式的代码,于是动态数据交换(Dynamic Data Exchange,DDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新数据,但是,解决彼此之间的“数据格式”转换仍然是程序员沉重的负担。

    对象的链接与嵌入(Object Linking and Embedded,OLE)的诞生把原来应用程序的数据交换提高到“对象交换”,这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的数据内容,其实OLE是Microsoft的复合文档技术,它的最初版本只是瞄准复合文档,但在后续版本OLE2中,导入了COM。

    组件(Component)是一个可重用的模块,建立在ActiveX技术上的代码独立单元,用于通过特定的接口提供特定的一组服务,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。

    ActiveX是使软件组件能够在网络环境中交互作用而与创建组件的语言无关的一套封装技术。实现ActiveX的基础是“组件对象模式(ComponentObjectModel,COM)”。ActiveX是Win32 API和组件对象模型(COM)的一系列扩充和增强,它适用于各种编程语言,因此只需知道控件支持的属性、方法和事件,就可以使用该控件。所谓ActiveX组件是指一些可执行的代码,比如.exe .dll .ocx文件,它们在提供对象时遵循ActiveX的规范。通过ActiveX技术,程序员就能够把这些可复用的软件组装到应用程序或者服务程序中。

    Ps.未在windows中注册过的ActiveX控件是不能使用的,通常使用Regsvr32.exe来注册ActiveX控件。

    COM是软件组件互相通讯的一种方式,它是一种二进制和网络标准,允许任意两个组件互相通讯,而不论计算机种类、操作系统、组件编程语言。

    ActiveX和OLE的最大不同在于,OLE针对的是桌面上应用软件和文件之间的集成,而ActiveX则以提供进一步的网络应用与用户交互为主。COM是独立于语言的组件体系结构,可以让组件间相互通信。

    部分摘录于:http://blog.sina.com.cn/s/blog_557ee0540100cukp.html

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页