1、COM组件以接口对功能分类,便于组织;DLL特别是大的DLL,函数一大堆,难以组织;
2、COM组件便于升级维护,功能扩充,只需添加接口就行;DLL升级困难,函 数不能随意改变;
3、COM创建调用有很好的安全性,DLL没有;
4、COM组件可轻松实现进程间调用,DLL很困难;
5、COM组件可轻松实现分布式调用,DLL不可能;
6、COM组件具有封装、继承、多态的面向对象特征,DLL只有封装;
7、在COM组件的基础上实现了大量功能:ActiveX,OLE等;
两种DLL不可以都用传统的调用方法来调用,是通过函数;
而COM组件的调用是通过接口.只有通过CreateInstance获得接口指针,才可以使用该接口.所有的一切调用都是通过接口实现.
COM是更好的DLL,所以COM是可以通过传统的DLL调用方法来实现的。
COM里有一全局导出函数DllGetClassObject.
COM库在加载COM组件时也是LoadLibrary GetProcAddress("DllGetClassObject") 开始的。
只不过COM把Dll所在路径等等信息把他注册到注册表里了而已。
本文对比了COM组件与DLL的特点,强调COM组件在接口管理、升级维护、安全性、进程间及分布式调用等方面的优势,并解释了COM组件如何通过接口进行调用。
19万+

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



