《COM技术内幕》读书笔记——第2章 COM接口的实现

本文是《COM技术内幕》第2章读书笔记,重点讲述了COM接口的实现方式,强调接口作为纯抽象基类的角色,以及C++中__stdcall调用约定的重要性。COM接口的不变性、多重接口和组件的接口集概念被提出,同时指出组件不直接访问实例数据,而是通过函数交互。此外,虚函数表和C++多态性的理解是深入理解COM的关键。通过一个示例展示了如何通过接口IX和IY与组件CA进行通信。
摘要由CSDN通过智能技术生成

      以下为此章知识点罗列,没有整理和引申。

 

      1. COM接口在C++中是用纯属抽象基类实现的,一个COM组件可以提供多个接口,一个C++类可以使用多继承来实现一个可以提供多个接口的组件。

      2. 用__stdcall标记的函数将使用标准的调用约定,即这些函数将在返回到调用者之间将参数从栈中删除。在常规的C/C++调用约定中,栈的清理工作则是由调用者完成的。标准调用约定名称的由来在于所有的Win32API函数,除了那些带有变参的函数外,使用的都是这种调用方式。带有变参的函数所用的仍然是C调用约定,即__cdecl。Windows采用标准的调用约定的原因在于这种约定可以减少代码的大小,另外还有一个原因是早期的Windows是运行于640KB的系统上的。

      3. 记住,接口是由没有实现细节的虚纯基类实现的。

      4. 类并非组件,在组件开发时不一定非用类不可,只不过用类来实现组件将比其他方法更容易。

      5. 接口并非总是继承的,一般使用一个类来实现所有的接口,这样比较简单,易于理解,并且可以使得用C++进行COM编程更为自然。

      6. 一个接口是一个函数集合,一个组件则是一个接口集,而一个系统则是一系列组件的集合。接口可以看作是行为。

     

      7. COM的接口不变性,一旦公布了一个接口,那么它将永远保持不变。

      8. 多重接口使得多态的重要性更为突出。客户可以按照相同的方式来处理不同的组件。一个组件所支持的接口越多,这些组件就应该越小。一个接口表示的行为越多,它的特定性将越强,因此它被其他组件复用的可能性将越小。对于不能复用的接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值