VB.NET调用COM DLL调用另一个COM DLL会导致错误

时间:2012-04-19 15:29:38

标签: vb6 comobject

我正在VB.NET 2010中编写一个COM DLL(我们称之为DLL A)。此DLL使用预先存在的DLL(DLL B)中的函数。当我从VS2010中的测试应用程序运行代码时,一切都很好。

(测试APP) - > (DLL A) - > (DLL B)

现在我在真实的APP(VB6中)中添加对DLL A的引用

(Real APP) - > (DLL A) - > (DLL B)

...我收到此错误

无法将'System .__ ComObject'类型的COM对象转换为接口typ'Object.class'。此操作失败,因为对于具有IID“{GUID}”的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(来自HRESULT的异常:0x80004002(E_NOINTERFACE))。

DLL A确实被初始化但是只要我调用一个带有对DLL B的引用的函数它就会出错。

HELP!

1 个答案:

答案 0 :(得分:1)

当您部署.NET DLL并希望将其与COM(VB6)一起使用时,您需要使用“RegASM”与您的程序集一起注册。注册非GAC文件夹时必须包含/ codebase开关。

使用/ codebase开关,它必须是强名称程序集。