本帖最后由 AdrianLY 于 2009-11-10 15:13:24 编辑

解决方案 »

  1.   

    1、首先我想弄明白的是,通过B组件来调用A组件中的接口,对不对呢?
        B中的接口IB1的Bfun方法返回类型IA1,不是IUnknown。我在C#的demo中调该b组件的接口方法时,我必须先定义一个类型为IA1的变量test1,然后test1 = IB1.Bfun();这个test1是通过B组件来声明的,因为我并没有引入一个A.dll
    2、现在我要直接new一个类型为IA1的对象,是不是需要把A.dll引入进来?PS:昨天的问题,也是你回答的,多谢多谢啊!
      

  2.   

    刚才和同事说了半天,他也不是很清楚!
    我现在的问题就是,想直接声明一个IA1接口的对象,然后直接调里面的方法,可是我这样写时:IA1 test = new IA1();无论放到哪都会提示错误 CS0144: 无法创建抽象类或接口“ALib.IA1”的实例。
    你说这是什么原因?再次感谢啊!
      

  3.   

    你要想直接使用IA1接口就必须将A.dll引入进来.
    如果是通过BFun函数来获取IAl接口,就不必将A.dll引入进来
      

  4.   

    显然你属于直接通过A控件来使用IA1接口,所以必须将A.dll引入进来. 
      

  5.   

    哦,对啦,那通过B声明的IA1接口和直接声明的IA1接口,在一个文件中使用时,会不会有什么冲突呢?好的,多谢多谢啊!
    今天的加上昨天的,一并感谢你啊!顺便问下:csdn中可不可以追加分数?我想多给你点分!呵呵
      

  6.   

    能否以代码举例子说明下通过B声明IA1接口和直接声明IA1接口?