组件强调针对接口编程, 而不是针对实现编程, 这一点的优势在于调用方和实现方解偶;
接口你可以理解成为一个函数指针的数组, 在 C++ 中对应一个纯虚类;
接口的实现方即为组件, 它将接口中定义的方法都实现了;
接口的使用方只看得见接口, 看不见其实现方, 所以要有一种方法来使接口的使用者能够创建或者选择实现方, 这就需要 GUID 了, 注册表中保存着每个 ID 对应的组件所在的文件, 这个 ID 是通过一种注册的方式注册到注册表中的. 使用方通过 ID 向系统请求一个组件, 系统根据注册表中的信息, 加载对应组件.
一、什么是com组件
COM组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。遵循COM规范编写出来的组件将能够满足对组件架构的所有要求。
COM组件可以给应用程序、操作系统以及其他组件提供服务;
自定义的COM组件可以在运行时刻同其他组件连接起来构成某个应用程序;
COM组件可以动态的插入或卸出应用。
二、为什么禁用com组件,能够阻止木马入侵
恶 意网站可以利用含有漏洞的com组件接口,下载木马,并且执行;
禁用com组件一般是指设置了Kill位,即IE浏览器不能使用这个组件,通俗讲:通过设置Kill位,可以使InternetExplorer在使用默认设置时永不调用被禁用的com组件,从而禁止该控件在InternetExplorer中运行。
禁用含有漏洞的com组件后,IE就不能调用含有漏洞的COM组件;黑客利用有漏洞的COM组,写成的网页代码就不能在IE中被执行,木马等将不会被下载
三、禁用com组件可能导致的问题
在线播放功能的组件被禁用,会导致在线电影等在线视频无法正常观看;
在线杀毒功能的组件被禁用,会导致在线杀毒不能使用;
在线游戏功能的组件被禁用,会导致在线游戏无法玩;
com组件禁用后的具体情况,需要根据具体的com组件功能作判断
优势在于兼容性\可扩展性\高效率性
将COM组建的接口标示符和路径保存在注册表中
没有任何优势