升级基于VB 6的应用程序暴露COM接口后, 针对先前版本构建的COM客户端(在.NET中)会收到E_NOINTERFACE错误。
错误讯息(已翻译) 无法将AProduct.AClass类型的COM对象转换为AProduct._AClass类型的接口...
这里出了什么问题?
E_NOINTERFACE错误的原因是什么?
我想到一旦接口发布到COM就无法更改;一个 应该发布可以继承旧接口的新接口(具有唯一的UUID),因此我推断接口可能已经错误地更新(扩展)。
答案 0 :(得分:1)
VB 6.0项目中的版本兼容性设置是什么? (请参阅项目属性的“组件”选项卡)
如果它不是二进制兼容性,则编译DLL时可能已更改组件公开的接口和事件的GUID。
查看这些资源以获取更多信息