博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
COM组件
阅读量:5792 次
发布时间:2019-06-18

本文共 1522 字,大约阅读时间需要 5 分钟。

 

1 概念

COM component(COM组件),即Component Object Model(组件对象模型,是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件。微软公司为了计算机工业的软件生产更加符合人类的行为方式,开发出该新的软件开发技术,是一种编程方法(如面向对象,结构化编程)。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。

COM是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。

 

2 为什么有COM组件的概念

一个应用程序通常是由单个的二进制文件组成的。当编译器生成应用程序之后,在对下一个版本重新编译并发行新生成的版本之前,应用程序一般不会发生任何变化。操作系统,硬件及客户需求的改变都必须等到整个应用程序被重新生成。
这种状况已经发生变化。开发人员开始将单个的应用程序分隔成单独多个独立的部分,也即组件。这种做法的好处是可以随着技术的不断发展而用新的组件取代已有的组件。此时的应用程序可以随新组件不断取代旧的组件而渐趋完善。而且利用已有的组件,用户还可以快速的建立全新的应用。
 

3 与ActiveX的关系

ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。
使用的是Windows操作系统,您或许会注意到一些以OCX结尾的文件。OCX代表“对象链接与嵌入控件”(OLE),这个技术是Microsoft提出的程序技术,用于处理桌面文件的混合使用。COM的概念已经取代OLE的一部分,Microsoft也使用ActiveX控件代表组件对象。
 

4 优点

组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个COM组件(ActiveX控件)可由不同语言的开发工具开发。

使用组件的种种优点直接来源于可以将它们动态的插入或卸出应用。

为了实现这种功能,所有的组件必须满足两个条件:

第一,组件必须动态链接;

第二,它们必须隐藏(或封装)其内部实现细节。

动态链接对于组件而言是一个至关重要的要求,而消息隐藏则是动态链接的一个必要条件。

 COM组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。遵循COM规范编写出来的组件将能够满足对组件架构的所有要求。COM组件可以给应用程序、操作系统以及其他组件提供服务;自定义的COM组件可以在运行时刻同其他组件连接起来构成某个应用程序;COM组件可以动态的插入或卸出应用。

 

5 相关注意事项

5.1 禁用com组件可能导致的问题

com组件禁用后的具体情况,需要根据具体的com组件功能作判断。常见的现象有:

在线播放功能的组件被禁用,会导致在线电影等在线视频无法正常观看。
在线杀毒功能的组件被禁用,会导致在线杀毒不能使用。
在线游戏功能的组件被禁用,会导致在线游戏无法玩。

5.2 手动启动COM组件操作方法

运行——regedit——找到被禁用的COM组件对应的clsid|注册表键值——删除具体值,或者整个键。

 

 

 

参考文章

百度百科,

 

转载地址:http://ffwfx.baihongyu.com/

你可能感兴趣的文章
Ubuntu 16.04 源码编译安装PHP7
查看>>
1099 任务执行顺序
查看>>
模板模式学习(转)
查看>>
SpringMvc文件上传
查看>>
CSS知识总结(二)
查看>>
Heist
查看>>
Java线程中断
查看>>
BZOJ1025 [SCOI2009]游戏
查看>>
arcengine 面积单位转换
查看>>
30. Substring with Concatenation of All Words
查看>>
python的isocalender()
查看>>
Docker详解
查看>>
scanf返回值的问题
查看>>
jqueryUI
查看>>
c#日期时间的操作
查看>>
JVM结构图
查看>>
ansible的安装部署及简单应用
查看>>
志在必得的。。。。失败。。。
查看>>
python的逻辑运算符
查看>>
设置浏览器默认滚动条(谷歌)
查看>>