我正在尝试使用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);
有什么想法会导致这种情况吗?