【快速学习系列 - 阅读笔记 - 05】《COM原理与应用》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangsgyx/article/details/83103313

1)COM(Component Object Model)组件是运行在分布式环境中的,其中DLL为进程内组件,EXE为进程外组件。

注1:COM组件由微软推出,是一种软件组件的开发方法,目的在于提高系统的灵活性和可扩展性,便于通过模块组合的方式进行系统集成。

注2:COM组件具有与开发平台和编程语言无关的特性。

注3:为了实现组件的动态插入和卸载,所有的组件必须满足两个条件,一个是必须动态链接,另一个是必须封装内部实现细节。

2)COM是以对象为基本单元的模型。

3)COM对象建立在二进制可执行代码级的基础上,是语言无关的。

4)接口是COM对象与外界进行交互的唯一途径,是包含了一组函数的数据结构。

5)用Class描述COM接口是最方便的手段。

6)COM定义的每一个接口都必须从IUnknown继承而来,其原因在于IUnknown接口提供了生存期控制(“引用计数”方法)和接口查询两个重要特性。

注1:IUnKnown是一个接口,定义在WIN32 SDK中的UNKNWN头文件中。

7)考虑通用性,为DLL的引出函数定义前加上extern “C”说明符,eg:extern “C” _declspec(dllexport) int _stdcall MyFunction(int n)。

8)在开发进程内组件程序时,一定要考虑代码的稳定性。

9)COM采用本地过程调用(LPC:同一机器上不同进程间通信)和远程过程调用(RPC:不同机器进程间)的方法进行进程间通信。

注1:LPC和RPC均属于IPC(进程间通信,Inter Process Communication)。

注2:常用的IPC方式有无名管道(pipe)、高级管道(popen)、有名管道(named pipe)、消息队列(message queue)、信号量(semophore)、信号(signal)、共享内存(shared memory)、套接字(socket)。

10)COM是软件组件互相通信的一种方式,是一种二进制和网络标准,允许任意两个组件互相通信。

11)COM是一种标准,符合COM标准的对象就是COM对象,COM对象必须实现IUnknown接口。

一个COM对象可以有多个接口,一个接口也可以被多个COM对象实现,其接口分为两种:内置接口和外置接口。

猜你喜欢

转载自blog.csdn.net/jiangsgyx/article/details/83103313
今日推荐