6 接口其他实现方法.pptVIP

  • 8
  • 0
  • 约1.3万字
  • 约 40页
  • 2017-08-09 发布于河南
  • 举报
6 接口其他实现方法

六 . COM接口的其他实现方法;1.基于表格驱动的接口查询;1.2 宏;#define BASE_OFFSET(ClassName, BaseName) \ (DWORD(static_castBaseName*(reinterpret_castClassName*(0)) - 0 这个宏用来计算基类BaseName到子类ClassName的偏移.(一个完整对象中的基类子对象的起始地址到完整对象的起始地址的偏移) reinterpret_castClassName*(0 把绝对内存地址0换成为子类对象的地址. static_castBaseName*(子类指针) 把子类指针转换为基类指针.这个工作由编译器计算出偏移.并且加上偏移值. DWORD(基类指针地址) - 0基类指针地址转换成绝对的数字后减去子类指针的绝对地址的数字. 宏BASE_OFFSET(ClassName, BaseName) 返回基类BaseName到子类ClassName的偏移量. 如下图所示: 在这个宏的基础上又定义了几个宏:;#define BEGIN_INTERFACE_TABLE(ClassName) \ typedef ClassName _InterfaceTableClassName;\ /

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档