您的当前位置: 首页 > 行业知识 > com组件是什么?有什么优点?与dll的区别一览

com组件是什么?有什么优点?与dll的区别一览

1.com组件是什么

COM组件技术(组件对象模型)是一种由 Micresoft
提出的组件标准,其不仅包含组件之间进行交互的标准,还提供了组件运行所需的环境。COM 标准中包含两种组件类型:进程内组件(in-process
component),也被称为模块,以动态链接库(DLL)的形式连接;进程外组件(out-of-processcomponent),是一个可执行程序(EXE
程序)。

com组件

2.com组件有什么优点

(1)可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;

(2)可以方便的将应用系统扩展到网络环境下;

(3)可以在多个应用系统中重复利用同一个组件;

(4)COM组件的特性是与语言无关和与平台无关。因此,一经开发便可以使用不同的高级语言和开发工具调用。并且,客源在此COM组件基础进行二次开发。

3.com组件与dll的区别

COM组件与DLL都是为解决代码重用设计的,然而两者却有很多不同。COM组件便于升级维护功能扩充,有很好的安全性,可以轻松的实现进程间调用,具有封装、继承、多态的面向对象的特征,而DLL在这些方面都有很大不足。64位的系统不能调用32位的DLL,而将DLL封装成COM组件就可以被64位系统调用了。两者最大的区别是COM组件是以接口方式提供给用户的一种二进制的使用规范,而DLL是以函数集合的方式提供给用户进行调用。

在开发难度上COM组件相对DLL要更为复杂,它需要满足规范,是相对独立的模块,可以被其他语言调用,而DLL开发简单可移植性差,在调用上没有COM组件简单。

延伸阅读

4.com组件的接口

(1)基本接口:COM组件的基本接口是Iunknown接口,在COM组件中所有接口都以“I”开头。Iunknown接口的主要作用是对COM组件的所有接口进行标准化,以方便调用COM组件。

(2)接口IClassFactory:IClassFactory的作用是创建COM组件。每个组件都必须有一个与之相关的类厂,由类厂创建组件实例,然后把实例指针交给客户程序。IClassFactory最重要的一个函数就是Cre⁃ateInstance,类厂就是通过调用这个函数创建组件实例的。但是一般情况下不会直接调用它,通过API函数CoCreateInstance进行调用。

(3)IDispatch调度接口:IDispatch接口也继承于IUnknown接口,对组件执行调度任务。由于 COM
组件是通过虚函数表来实现对函数的调度的,也就是说COM组件必须使用指针来实现对函数的调度,但是并不是所有的语言都支持指针,因此调度接口就是用来解决这一问题。在调度接口中,将组件的每个函数以及每个属性都进行相应的编号,在客户程序要调用这些函和属性的时候就把这些编号传给IDispatch接口,再根据这些编号调用相应的函数。

以上就是有关于com组件的定义、优点及其与dll的区别的全面梳理,如果还想了解更多com组件的相关内容,敬请关注三个皮匠报告行业知识栏目。

推荐阅读

什么是以太坊?以太坊区块链架构介绍

什么是虚拟专用网?特点是?

什么是智能网关?分类有哪些?

本文由作者AG发布,版权归原作者所有,禁止转载。本文仅代表作者个人观点,与本网无关。本文文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
客服
商务合作
小程序
服务号
折叠