在升级了一个基于VB 6的应用程序并公开了一个COM接口之后,针对以前版本构建的COM客户机(在.NET中)将接收E_NOINTERFACE错误。
错误信息(翻译),
无法将
AProduct.AClass类型的COM对象转换为AProduct._AClass类型的接口.
这里出了什么问题?
E_NOINTERFACE错误的原因是什么?
我认为,一旦将接口发布到COM,就不能更改;应该发布一个新接口(具有惟一的UUID),该接口可以继承旧接口,因此我推断接口可能被错误地更新(扩展)。
发布于 2008-10-30 02:38:29
在您的VB6.0项目中,版本兼容性设置是什么?(请参阅项目属性的“组件”选项卡)
如果不是二进制兼容性,那么在编译DLL时,组件公开的接口和事件的GUID可能已经更改。
请查看这些资源以获得更多信息。
如何使用项目和二进制兼容性
在VisualBasic6.0中设置COM组件项目
https://stackoverflow.com/questions/243261
复制相似问题