设为首页 加入收藏

TOP

Com组件方面面试题
2014-11-24 01:25:58 来源: 作者: 【 】 浏览:8
Tags:Com 组件 方面 试题

1.什么是COM 你怎么理解COM
答:Components Object Model(COM)是软件组件互相通信的一种方式。它是一种二进制和网络标准,允许任意两个组件互相通信,而不管它们是在什么计算机上运行(只要计算机是相连的),不管各计算机运行的是什么操作系统(只要该系统支持COM),也不管该组件是用什么语言编写的。COM还提供了位置透明性:当你编写组件时,其他组件是进程内DLL、本地EXE,还是位于其他计算机上的组件,对用户而言都无所谓。
首先,COM对象被很好地封装起来。你无法访问对象的内部实现细节,你无法知道对象使用了什么数据结构,但是我们可以通过接口来访问COM对象里面的方法。
概括地说,COM具有如下一些优越性:(1)编程技术难度和工作量降低,开发周期变短,开发成本降低。(2)实现分层次的编程,从而促进了软件的专业化生产。(3)软件的复用率提高,使软件的使用效率得到提高并延长了使用寿命。
2.COM是接口么?
答:(1)COM不是接口,也不是对象,它是一种标准。(2)符合COM标准的对象就是COM对象。其实COM对象无非是实现了很多接口的对象而已。(3)COM对象必须实现IUnKnown接口,这个接口是管理COM对象生命周期的。当COM对象不使用的时候,这个接口定义的方法负责释放内存。(4)QueryInterface(QI),即所谓查询接口。由于COM对象有很多个接口,不同的接口管理着COM的不同类型的方法。因此从一个接口可以使用的方法转到另一个接口可以使用的方法的过程称为QI,这个过程是由Idispatch接口管理的。(5)GUIDs每个组件都有一个独一无二的标识,这个标识符就是COM组件的身份,它是一个128位的数字,由系统自由分配。(6)一个COM对象可以有多个接口,一个接口也完全可以被多个COM 对象实现。(7)接口分为两种:内置接口和外置接口。前一种定义的是COM对象的方法和属性,用implements实现,COM对象必须实现所有的接口内容;后一种定义的是COM对象的事件,用withEvents实现,这种接口在实现的时候不必实现所有的内容。(8)COM组件必须被注册后才能使用,它得到注册表那里去登记“户口”。
3.COM有什么缺陷?
答:COM组件很不错,可是它也有致命的缺陷,这个缺陷就来自它本身。COM是可以被重用的,COM对象的实现过程也可以被修改升级(定义是不能修改的)。如果两个程序都使用一个COM对象,而这个COM组件升级的话,很可能会出现某个程序无非使用新组件的情况,这被称为“DLL HELL”(DLL灾难)。有时候我们安装了新软件后很多别的软件就无法使用了,很大程度上就是因为这个DLL HELL。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一些.net面试题(bs方向) 下一篇上海交大慧谷高科技园广野软件.ne..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: