为什么在使用COM接口时会收到InvalidCastException?

时间:2019-07-19 08:09:20

标签: c# c++ com

我正在尝试使用C#编写的具有COM接口的可执行文件,从C#程序中调用方法。

我使用了一个.old文件,该文件通过MIDL运行以获得一个.tlb文件,该文件通过tlbimp运行以获得我的C#项目中使用的dll包装器。

但是,当我运行它时,会收到“ InvalidCastException:不支持此类接口”。

我不知道是什么原因引起的。我找到的唯一对此问题的参考是在https://msdn.microsoft.com/en-us/ie/aa645736%28v=vs.94%29?f=255&MSPPError=-2147217396上,其中指出“如果强制转换失败,则将抛出无效的强制转换异常”,但是却没有说明为什么或如何处理。

SparesClass spares = new SparesClass();
ISpares sparesInterface = (ISpares)spares;
sbyte result = sparesInterface.ReplaceLRU(m_iClassGobInt);

有什么想法会导致这种情况吗?

0 个答案:

没有答案