1.什么是COM 你怎么理解COM
答:Components Object Model(COM)是软件组件互相通信的一种方式。它是一种二进制和网络标准,允许任意两个组件互相通信,而不管它们是在什么计算机上运行(只要计算机是相连的),不管各计算机运行的是什么操作系统(只要该系统支持COM),也不管该组件是用什么语言编写的。COM还提供了位置透明性:当你编写组件时,其他组件是进程内DLL、本地EXE,还是位于其他计算机上的组件,对用户而言都无所谓。
首先,COM对象被很好地封装起来。你无法访问对象的内部实现细节,你无法知道对象使用了什么数据结构,但是我们可以通过接口来访问COM对象里面的方法。
概括地说,COM具有如下一些优越性:(1)编程技术难度和工作量降低,开发周期变短,开发成本降低。(2)实现分层次的编程,从而促进了软件的专业化生产。(3)软件的复用率提高,使软件的使用效率得到提高并延长了使用寿命。
2.COM是接口么?
3.COM有什么缺陷?
答:COM组件很不错,可是它也有致命的缺陷,这个缺陷就来自它本身。COM是可以被重用的,COM对象的实现过程也可以被修改升级(定义是不能修改的)。如果两个程序都使用一个COM对象,而这个COM组件升级的话,很可能会出现某个程序无非使用新组件的情况,这被称为“DLL HELL”(DLL灾难)。有时候我们安装了新软件后很多别的软件就无法使用了,很大程度上就是因为这个DLL HELL。