COM组件
COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。
方法
COM是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。并且组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸下或替换掉。Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。并且Microsoft的开发人员也大量使用COM组件来定制他们的应用程序及操作系统。 COM所含的概念并不止是在Microsoft Windows操作系统下才有效。COM并不是一个大的API,它实际上像结构化编程及面向对象编程方法那样,也是一种编程方法。在任何一种操作系统中,开发人员均可以遵循“COM方法”。 一个应用程序通常是由单个的二进制文件组成的。当编译器生成应用程序之后,在对下一个版本重新编译并发行新生成的版本之前,应用程序一般不会发生任何变化。操作系统,硬件及客户需求的改变都必须等到整个应用程序被重新生成。 目前这种状况已经发生变化。开发人员开始将单个的应用程序分隔成单独多个独立的部分,也即组件。这种做法的好处是可以随着技术的不断发展而用新的组件取代已有的组件。此时的应用程序可以随新组件不断取代旧的组件而渐趋完善。而且利用已有的组件,用户还可以快速的建立全新的应用。 传统的做法是将应用程序分割成文件,模块或类,然后将它们编译并链接成一个单模应用程序。它与组件建立应用程序的过程(称为组件构架)有很大的不同。一个组件同一个微型应用程序类似,即都是已经编译链接好并可以使用的二进制代码,应用程序就是由多个这样的组件打包而得到的。单模应用程序只有一个二进制代码模块。自定义组件可以在运行时刻同其他的组件连接起来以构成某个应用程序。在需要对应用程序进行修改或改进时,只需要将构成此应用程序的组件中的某个用新的版本替换掉即可。 COM,即组件对象模型,是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件。
组件架构的一个优点就是应用可以随时间的流逝而发展进化。除此之外,使用组件还有一些可以使对以有应用的升级更加方便和灵活的优点,如应用的定制,组件库以及分布式组件等。
使用组件的种种优点直接来源于可以将它们动态的插入或卸出应用。为了实现这种功能,所有的组件必须满足两个条件:第一,组件必须动态链接;第二,它们必须隐藏(或封装)其内部实现细节。动态链接对于组件而言是一个至关重要的要求,而消息隐藏则是动态链接的一个必要条件。
COM组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。遵循COM规范编写出来的组件将能够满足对组件架构的所有要求。COM组件可以给应用程序、操作系统以及其他组件提供服务;自定义的COM组件可以在运行时刻同其他组件连接起来构成某个应用程序;COM组件可以动态的插入或卸出应用。
恶意网站可以利用含有漏洞的com组件接口,下载木马,并且执行; 禁用com组件一般是指设置了Kill位,即IE浏览器不能使用这个组件,通俗讲:通过设置Kill位,可以使InternetExplorer在使用默认设置时永不调用被禁用的com组件,从而禁止该控件在Internet Explorer中运行。禁用含有漏洞的com组件后,IE就不能调用含有漏洞的COM组件;黑客利用有漏洞的COM组,写成的网页代码就不能在IE中被执行,木马等将不会被下载。
禁用com组件可能导致的问题
在线播放功能的组件被禁用,会导致在线电影等在线视频无法正常观看; 在线杀毒功能的组件被禁用,会导致在线杀毒不能使用; 在线游戏功能的组件被禁用,会导致在线游戏无法玩, com组件禁用后的具体情况,需要根据具体的com组件功能作判断。
手动启动COM组件操作方法:
运行——regedit——找到被禁用的com组件对应的clsid|注册表键值——删除具体值,或者整个键。
分享到:
相关推荐
COM组件查看器是一款实用工具,专门用于检查和分析COM(Component Object Model)组件,包括OCX(OLE Control Extensions)、EXE可执行文件以及DLL(Dynamic Link Library)动态链接库。这款软件可以帮助用户获取...
### c#中调用COM组件 #### 概述 在.NET框架中,C#作为一种流行的编程语言被广泛应用于各种软件开发场景。而COM(Component Object Model)组件则是一种早期的跨语言互操作技术,用于实现不同应用程序之间的通信与...
COM组件,全称为Component Object Model,是微软提出的一种软件组件模型,它允许不同应用程序之间进行交互和通信。COM组件可以是动态链接库(DLL)、可执行文件或任何实现了COM接口的代码单元。注册COM组件是使其...
**VC++ 编写COM组件教程** COM(Component Object Model)是微软提出的一种软件组件模型,它允许不同编程语言和操作系统环境中的对象相互通信。在VC++中,利用ATL(Active Template Library)库可以简化COM组件的...
COM组件,全称为Component Object Model,是微软提出的一种软件组件模型。它允许程序中的不同部分在内存中以独立的对象形式存在,并通过接口进行交互,从而实现了跨语言、跨平台的互操作性。COM组件可以是DLL(动态...
QT生成COM组件并调用COM组件测试工程是一个涉及Qt框架与COM(Component Object Model)技术的实践项目。本文将深入探讨这两个技术以及如何在Qt环境中创建和使用COM组件。 首先,让我们了解一下Qt。Qt是一个跨平台的...
引用百度百科:COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合...
标题“WPF调用COM组件”暗示了我们的重点在于理解如何在WPF应用中使用由C++编写的COM组件。WPF是.NET Framework的一部分,提供了一种创建具有丰富图形界面的桌面应用程序的方法。它利用XAML语言来描述用户界面,提供...
Java调用COM组件是Java与非Java环境交互的一种方式,主要应用于Windows平台,因为COM(Component Object Model)是微软提出的一种面向对象的技术,主要用于构建Windows应用程序和服务。在Java中调用COM组件,可以...
"C++开发一个简单累加的COM组件" COM组件是Component Object Model的缩写,用于实现跨语言、跨平台的组件复用。COM组件是基于interface的,它将接口和实现分离,使得开发者可以独立地develop和维护接口和实现。 ...
博客【cmake实战十一】com组件方法的简单实现 中的demo 博客地址:https://blog.csdn.net/junxuezheng/article/details/127155750,com组件相关知识网上介绍的比较多,后来做了一些了解,发现我们也用到了类似思想,...
COM组件是微软Windows操作系统中的一种技术,用于实现应用程序之间的组件重用和互操作性。COM(Component Object Model)是一种二进制标准,允许不同程序之间共享对象,促进软件开发的效率和灵活性。`Comview`是一款...
4.1 COM组件-就是在Windows平台下, 封装在动态库(DLL)或者可执行文件(EXE) 中的一段代码,这些代码是按照COM的 规范实现. 4.2 COM组件的特点 4.2.1 动态链接 4.2.2 与编程语言无关 4.2.3 以二进制方式发布 ...
COM组件,全称为Component Object Model,是微软推出的一种软件组件模型,它定义了一种标准,使得不同编程语言编写的对象可以互相通信,实现组件的复用和互操作性。COM组件是Windows平台下广泛使用的软件构造块,...
C#调用COM组件方法总结 本篇文章总结了C#调用COM组件的方法,涵盖了将COM类型信息转换为.NET元数据、查看元数据、测试程序等多个步骤。下面是对应的知识点: 一、将COM类型信息转换为.NET元数据 在C#调用COM组件...
标题 "PB调用.NET COM组件" 涉及的关键知识点主要集中在PowerBuilder(PB)如何与.NET Framework中的COM组件交互。在.NET Framework中,可以通过创建COM互操作组件(也称为托管COM),使得非.NET环境如PB这样的应用...
在本文中,我们将深入探讨如何使用C语言来实现一个简单的COM组件,这将帮助我们理解COM的实现机制。 首先,COM的核心概念是接口(Interface),它定义了一组方法,供其他组件或应用程序调用。在C语言中,接口通常是...
然而,标题提到的是"Linux下C++ COM组件demo",这意味着我们将讨论如何在非传统的Windows环境中,即Linux系统中实现类似的组件交互机制。 在Windows上,COM组件是通过接口和底层的二进制兼容性来实现跨进程通信的。...
C++如何采用COM组件的方法直接调用动态库 COM(Component Object Model,组件对象模型)是一种软件架构,用于实现跨语言、跨平台的组件间交互。COM 组件可以是动态链接库(DLL),在 C++ 中调用 COM 组件可以使用...
本文将详细介绍如何通过进程外COM组件在64位Windows 7系统中实现对32位库的调用。 首先,了解COM(Component Object Model)组件。COM是一种微软定义的二进制接口标准,允许不同语言编写的对象之间进行交互。COM...