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没有;
4、COM组件可轻松实现进程间调用,DLL很困难;
5、COM组件可轻松实现分布式调用,DLL不可能;
6、COM组件具有封装、继承、多态的面向对象特征,DLL只有封装; 7、在COM组件的基础上实现了大量功能:ActiveX,OLE等;