1

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

错误消息(翻译),

无法将类型的 COM 对象转换为类型AProduct.AClass的接口AProduct._AClass...

这里出了什么问题?

错误的原因是什么E_NOINTERFACE

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

4

1 回答 1

1

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

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

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

如何使用项目和二进制兼容性

在 Visual Basic 6.0 中设置 COM 组件项目

于 2008-10-30T02:38:29.427 回答