1.com组件是什么
COM组件技术(组件对象模型)是一种由 Micresoft
提出的组件标准,其不仅包含组件之间进行交互的标准,还提供了组件运行所需的环境。COM 标准中包含两种组件类型:进程内组件(in-process
component),也被称为模块,以动态链接库(DLL)的形式连接;进程外组件(out-of-processcomponent),是一个可执行程序(EXE
程序)。
![com组件 com组件](//ziboxinyan.com/FileUpload/ueditor_s/upload/2022-9/13/63798678267396.jpg)
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组件的相关内容,敬请关注三个皮匠报告的行业知识栏目。
推荐阅读
什么是以太坊?以太坊区块链架构介绍
什么是虚拟专用网?特点是?
什么是智能网关?分类有哪些?