遇到这样一个问题,假设我有一个类型库 A.TLB,里面声明了一个接口类型,   IA = interface(IDispatch)
     ... //methods
   end;
然后我又设计了另一个ActiveX Library,名称为B.DLL,类型库为 B.TLBB.TLB中有
   IB = interface(IA)
   end;在 B.DLL 中,有一个 IA 的实现 TAImpl,
///////////////////////////////////////////
unit AImpl;
....
  TAImpl = class(TAutoObject, IA)
  ....
  end;
......
initialization
begin
  TAutoObjectFactory.Create(
          ComServer,
          TAImpl,
          CLASS_A,
          ciInternal,
          tmApartment
        );
end;end.
////////////////////////////// end of AImpl
  
然后 IB的实现中,通过TAImpl对象的delegation来实现  TBImpl = class(TAutoObject, IA, IB)
  private
    fAImpl: TAImpl;
  protected
    property AImpl: TAImpl read fAImpl implements IA, IB;  end;....contructor TBImpl.Create();
begin
  inherited;
  fAImpl := TAImpl.CreateAggregated(Self);
end;一方面,IA必须以delegation的方式实现
另一方面,TAImpl还必须实现为inner object以上是我的设计和需求但是在实现中遇到一个问题就是在前面的AImpl单元中的initialization
一节中的AutoObjectFactory创建的问题它返回一个异常,指出在类型库中没有找到IA的类型信息因为B.DLL只带有B.TLB中所包含的类型信息,
而不包含在A.TLB中声明的IA的类型信息
那么,我该怎么办呢?我要怎样做才能使得我在B.DLL中顺利创建TAImpl对象呢?是否这个TAImpl必须实现在A.DLL中,
然后通过IClassFactory来创建Aggregated对象?
愿大大们花点宝贵的时间给我讲解讲解先谢了