比如:
class  ...  cbclass  ...  ca
ca实现ia, cb 从ca继承,同时实现自己的接口ib。同事说在VC的ATL里是做不到这个功能的。我想不会吧?这个功能是很常用的呀。哪个大哥知道?

解决方案 »

  1.   

    应该可以的,你试一下,就像atl魔板生成的类一样
      

  2.   

    首先要明白com的原理,com 是抽象基类,也就是所有的功能由它的子类实现,com本身是一个vptr,vptr 指向vtable ,  所以你说的问题可以解决,但需要换一个方式,在写atl 的时候需要手工修改代码, 你的 ia ,和ib 作为cb 的父类,cb 作为ca 的父类就行了。如果不明白,[email protected] 交流,不过最好你先看一看com本质论,在做atl
      

  3.   

    是可以的。我以前也遇到过同样的问题。在《深入解析ATL(ATL Internals)》一书的239页《接口表映射表的技巧》一节中讲到了这种情况。