VB.NET 调用COM DLL并调用另一个COM DLL会出错



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

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

-> (DLL B)

现在我在实际应用程序中添加对 DLL A 的引用(在 VB6 中)

(真实应用程序) --> (DLL A) -

-> (DLL B)

。我收到此错误

无法将类型为"System.__ComObject"的 COM 对象强制转换为接口类型"对象.class"。此操作失败,因为对具有 IID"{GUID}"的接口的 COM 组件的查询接口调用失败,原因如下:不支持此类接口(HRESULT 的例外:0x80004002 (E_NOINTERFACE))。

DLL A 确实被初始化了,但是一旦我调用一个引用 DLL B 的函数,它就会出错。

帮助!

当您部署 .NET DLL 并希望将其与 COM(VB6) 一起使用时,您需要使用 "RegASM" 进行注册。注册时必须包含/codebase 开关,而不是 GAC 文件夹。

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

最新更新