转自:https://blog.youkuaiyun.com/lemonbox/article/details/5753184
听了,学了,用了很多COM、OLE、ActiveX的技术,但是一直是一团模糊的概念,只知道这三样东西都是一路货色,但是具体有什么区别呢,没有去深究,今天心血来潮,上网查了一些资料,终于有点清楚了~~~
得到的结论就是:COM、OLE、ActiveX的的确确是一路货色!!!虽然说的有些武断,但我只是将人们对COM、OLE、ActiveX最广泛的理解表达出来,三者之间还是很大区别的,具体渊源后面讲。
一、组件(Component)和对象(Object)之间的区别。
网上找的:组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象 (Rules Object)。组件看起来像对象,但不符合对象的学术定义。它们的主要区别是:
1)组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用;
2)组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序;
3)组件为模块重用,而对象为代码重用。
以我自己理解,两者最大的区别就是第三点,前两个区别只能说是抽象的层次不一样,都是过程和数据的封装而已。或者换个说法更清楚:组件是编译好的程序的重用,对象是没编译的代码的重用!!呵呵,不知道这么说对不对,但是最起码好理解吧。
二、渊源
纯粹的数据交换(剪切板)有很多弊端,比如需要解析格式,无法同步数据等等,于是OLE出现了,对象的链接与嵌入(Object Linking and Embedded,OLE)的诞生把原来应用程序的数据交换提高到“对象交换”,这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的数据内容,其实OLE以前就是Microso

本文详细梳理了COM、OLE和ActiveX之间的关系。COM是组件对象模型,是OLE和ActiveX的基础,提供了组件间的通信机制。OLE是对象的链接与嵌入技术,用于应用程序间的数据和对象交换,而ActiveX是OLE在网络应用上的扩展,主要用于网络交互和控件。三者在历史上相互发展,COM是基础,OLE和ActiveX是基于COM的应用标准。
最低0.47元/天 解锁文章
1028

被折叠的 条评论
为什么被折叠?



