我想VB编的COM DLL应该支持双接口,因为晚绑定(IDispatch)就是为了支持象VB,
JAVA这样不支持指针的语言的,所以我认为他应该支持

解决方案 »

  1.   

    是这样的,我有一个VB编写的COM DLL,支持双接口(是否真的支持我不清楚). 
    现在我用VC编写了一个Client,调用这个COM DLL.
    用导入类(Class Wizard...)的方法,可以调用这个COM DLL的方法. 但跟踪发现,这种调用是通过
    IDispatch->Invoke()实现的. 我的问题是, 是否可以在VC中用普通接口方法(vtbl), 实现访问VB编写的COM DLL的method, 例如实现如下形式调用:IVBClass *pIf = NULL;
    CoCreateInstance(
    ... ...
    IID_IVBClass,  // Interface ID to create
    (LPVOID*)&pIf);pIf->Method1(); 我该如何从VB编写的COM DLL中引出接口定义类 IVBClass ?不胜感谢
     
      

  2.   

       VB确实支持双接口,因为在Active Dll中,编译器为每一个Multiuse类创建了一个默认的_classname的接口,如果自己再定义一个接口的话,就可以实现双接口了。
       实际上vb在编译Active DLL时接口都是基于IDispatch接口的,而对于用户自定义接口或者multiuse类的public method都是调用了IDispatch的Invoke()方法来调用用户的自定义方法。使用微软自带的OLE View工具看一下VB编译Dll生成的Tlb文件就会明白了。