升级VB6后E_NOINTERFACE

时间:2008-10-28 13:22:04

标签: vb.net com vb6 vb6-migration

升级基于VB 6的应用程序暴露COM接口后, 针对先前版本构建的COM客户端(在.NET中)会收到E_NOINTERFACE错误。

错误讯息(已翻译) 无法将AProduct.AClass类型的COM对象转换为AProduct._AClass类型的接口...

这里出了什么问题?

E_NOINTERFACE错误的原因是什么?

想到一旦接口发布到COM就无法更改;一个  应该发布可以继承旧接口的新接口(具有唯一的UUID),因此我推断接口可能已经错误地更新(扩展)。

1 个答案:

答案 0 :(得分:1)

VB 6.0项目中的版本兼容性设置是什么? (请参阅项目属性的“组件”选项卡)

如果它不是二进制兼容性,则编译DLL时可能已更改组件公开的接口和事件的GUID。

查看这些资源以获取更多信息

How To Use Project and Binary Compatibility

Setting up a COM component project in Visual Basic 6.0