使用IUnknown派生的C++;VB6中的COM对象 我开发了一个基于C++的基于DLL的COM对象,它实现了一些InDebug派生接口。如何在VB6中使用它?VB6是否支持基于IUnknown的接口,或者我需要从IDispatch派生

使用IUnknown派生的C++;VB6中的COM对象 我开发了一个基于C++的基于DLL的COM对象,它实现了一些InDebug派生接口。如何在VB6中使用它?VB6是否支持基于IUnknown的接口,或者我需要从IDispatch派生,c++,com,vb6,C++,Com,Vb6,更新 我没有使用ATL。实现是基于文章的。好像我需要为我的对象生成一个.tlb文件 您不需要使用IDispatch;只有后期绑定才需要这样做 若要使用对象,必须将对对象类型库的引用添加到VB6项目中。如果接口仅从IUnknown派生,而不是IDispatch,则可以在VB6中使用早期绑定。谢谢您的回答!很好,我不需要从IDispatch实现所有这些东西。我已经更新了我的问题。难道您不知道一种不使用MIDL或MkTypLib生成TLB文件的方法吗?为什么不能使用MIDL?在MIDL中定义接口和co

更新


我没有使用ATL。实现是基于文章的。好像我需要为我的对象生成一个.tlb文件

您不需要使用IDispatch;只有后期绑定才需要这样做


若要使用对象,必须将对对象类型库的引用添加到VB6项目中。

如果接口仅从IUnknown派生,而不是IDispatch,则可以在VB6中使用早期绑定。

谢谢您的回答!很好,我不需要从IDispatch实现所有这些东西。我已经更新了我的问题。难道您不知道一种不使用MIDL或MkTypLib生成TLB文件的方法吗?为什么不能使用MIDL?在MIDL中定义接口和coclass是在C/C++中使用COM的标准部分,它不需要使用MFC或ATL。这是因为(1)我使用的是MinGW编译器,(2)MIDL输出中充斥着无意义的代码和注释-我不喜欢它。你不必使用MIDL创建的.C和.h文件;只要确保接口定义和GUID与C++代码所用的匹配,它就应该工作。我不知道还有其他生成TLB文件的方法。