使用嵌入式互操作类型时发出警告

Aku*_*uma 5 .net com-interop tlbimp

我最近将我的 C# 解决方案之一从 VS2008 更新到 VS 2010,以利用嵌入式互操作类型功能,这样我就可以停止提供目前由于与旧版 VB6 代码库交互而必须使用的互操作库。

由于某种原因,我在编译解决方案时收到以下消息:

类型库导入程序遇到不是从 IUnknown 派生的接口:“_HiddenInterface”

我进行了搜索,到目前为止我能找到的唯一两条信息是“忽略它,它不会造成任何伤害”和“这意味着 VB6 代码违反了一些规则”。由于 VB 代码库是我们的,并且最好在编译时出现 0 个警告,因此我想纠正导致这些警告的任何原因。

我很茫然,所以任何建议都会很好。

Hol*_*per 2

如果您引用了一个 COM 库,而该库包含一个具有返回 VB Collection 对象的公共方法的类,您将收到编译器警告。

_HiddenInterface 接口包含在 MSVBVM60.DLL 中。您可以通过打开 OLE 视图并导航到类型库> Visual Basic for Applications (Ver 6.0)来查看这一点。双击类型库以打开 ITypeLib 查看器窗口。interface _HiddenInterface你可以在列表中看到。

您应该能够使用这些函数返回的集合,尽管您无法在 .NET 中创建集合实例,如 Microsoft 知识库文章BUG:尝试将 Collection 对象从 Visual Basic 6.0 组件传递到 Visual 时出现错误消息中所述Basic 2005 或 Visual Basic .NET: "System.InvalidCastException"