从Matlab运行.net代码时找不到COM类

时间:2018-11-20 09:52:57

标签: c# .net matlab com

我正在使用c#来构建一些库,然后在Matlab 64bit中使用这些库。 c#库已编译为64位,因此我们可以从Matlab中使用它。 c#库使用互操作来调用COM组件,该组件是旧的32位代码。在C#中运行测试时,一切正常,但是如果我使用Matlab中的库,则会收到以下错误:

消息:无法将类型为“ ...”的COM对象转换为接口类型为“ ...”。该操作失败,因为 由于以下原因,在COM组件上对具有IID'{...}'的接口的QueryInterface调用失败 错误:未注册类(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))。 来源:mscorlib

在我看来,运行时正在寻找COM类的64位,但是我不明白为什么,但是afaik visual studio 2017仍然是32位,这就是为什么它选择正确的COM。欢迎任何帮助。

更新

我尝试使用加载的64位测试运行代码,但遇到相同的错误,因此它是从VS运行的,因为它是32位的。确定了这一点之后,是否有一种方法可以强制64位执行上下文调用32位COM组件?

谢谢

0 个答案:

没有答案