我最近将我的 C# 解决方案之一从 VS2008 更新到 VS 2010,以利用嵌入式互操作类型功能,这样我就可以停止提供目前由于与旧版 VB6 代码库交互而必须使用的互操作库。
由于某种原因,我在编译解决方案时收到以下消息:
类型库导入程序遇到不是从 IUnknown 派生的接口:“_HiddenInterface”
我进行了搜索,到目前为止我能找到的唯一两条信息是“忽略它,它不会造成任何伤害”和“这意味着 VB6 代码违反了一些规则”。由于 VB 代码库是我们的,并且最好在编译时出现 0 个警告,因此我想纠正导致这些警告的任何原因。
我很茫然,所以任何建议都会很好。
如果您引用了一个 COM 库,而该库包含一个带有返回 VB Collection 对象的公共方法的类,您将收到编译器警告。
_HiddenInterface 接口包含在 MSVBVM60.DLL 中。您可以通过打开 OLE 视图并导航到类型库 > Visual Basic 应用程序(6.0 版)。双击类型库以打开 ITypeLib 查看器窗口。你可以看到interface _HiddenInterface
在列表中。
您应该能够使用这些函数返回的集合,尽管您无法在 .NET 中创建集合的实例,如 Microsoft 知识库文章中所述BUG:尝试将 Collection 对象从 Visual Basic 6.0 组件传递到 Visual Basic 2005 或 Visual Basic .NET 时出现错误消息:“System.InvalidCastException” http://support.microsoft.com/kb/323737.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)