我有两个双接口com,CA:IA和CB:IB。现在我想自定义接口IC::IDispatch和他的派生接口IC1::IC,IC2::IC。并修改原有接口为IA::IC,IB::IC2。请问我需要在哪个idl中实现新加的接口?

解决方案 »

  1.   

    新的接口在IA和IB这两个IDL文件中添加
      

  2.   

    IC::IDispatch这个接口需要在两个idl中添加吗?好像会重复定义吧?
      

  3.   

    我在IA的idl中实现IC,IC1和IC2,并且IA::IC.在IB的idl通过import “A.idl”引入IC2,并且定义IB::IC2.现在两个com编译没有问题,但是在测试程序中,import“A.dll”,import“B.dll”同时引入时,报IC重复定义的错误。请问该如何解决呢???谢谢!!!
      

  4.   

    那你在一个IDL中定义IC接口,再在你需要的地方进行import这个IDL?
      

  5.   

    那在import IC的IDL里用
    #if !defined(XXXX)
    #define XXXX
    #import"ic.idl"
    #endif类似这样的行不?
      

  6.   

    你看一下tbl文件里导出来的接口声明文件,把IC接口声明的文件改变一下,让IC接口只声明一次
      

  7.   

    再不是你就把两个组件的实现都放到一个工程里,不要弄两个idl了