OLE、ActiveX 、COM和普通DLL的简单理解

来源:互联网 发布:java处理大量数据 编辑:程序博客网 时间:2024/06/05 04:10

COM

COM组件是以WIN32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码组成。

COM组件是遵循COM规范编写的

COM组件是一些小的二进制可执行文件

COM组件可以给应用程序、操作系统以及其他组件提供服务

COM组件必须隐藏(封装)其内部实现细节

COM组件必须以二进制的形式发布,与语言,平台无关

 

COM组件不是一种计算机语言

COM组件不是DLL,只是利用DLL来给组件提供动态链接的能力

COM组件不是一个API函数集。

COM组件不是类

 

ActiveX、OLE 和COM的关系:

首先,让大家有一个总体的概念,从时间的角度讲,OLE是最早出现的,然后是COM和ActiveX;从体系结构角度讲,OLE ActiveX是建立在 COM之上的,所以COM是基础;单从名称角度讲,OLE、ActiveX是两个商标名称,而COM则是一个纯技术名词,这也是大家更多的听说 ActiveX和OLE的原因。

Activex,OLE,COM都是微软的一些技术标准。Ole比较老后来发展成Activex,再后来发展成为COM, OCX、DLL是扩展名。 Activex有两种扩展名OCX和DLL。实际上你可以把它们的扩暂名字调换。 COM作为ActiveX的更新技术,扩展名也有可能是DLL ,DLL文件还有可能是动态链接库。

 

COM和一般dll区别:

1、COM组件以接口对功能分类,便于组织;DLL特别是大的DLL,函数一大堆,难以组织;  

2、COM组件便于升级维护,功能扩充,只需添加接口就行;DLL升级困难,函数不能随意改变;  

3、COM创建调用有很好的安全性,DLL没有; 

4COM组件可轻松实现进程间调用,DLL很困难; 

5COM组件可轻松实现分布式调用,DLL不可能; 

6、COM组件具有封装、继承、多态的面向对象特征,DLL只有封装; 7、在COM组件的基础上实现了大量功能:ActiveX,OLE等;

0 0