我最近更新了一个从VS2008到2010的C#解决方案,以利用嵌入式互操作类型功能,因此我可以停止运送我们目前拥有的互操作库,因为我们与传统的VB6代码库进行了交互.
出于某种原因,我在编译解决方案时收到以下消息:
Type library importer has encountered an interface not derived from IUnknown: ‘_HiddenInterface’
我一直在寻找,到目前为止我能找到的唯一两点信息是“只是忽略它不会造成任何伤害”,“这意味着VB6代码违反了一些规则”.由于VB代码库是我们的,并且最好在编译时有0个警告,我想纠正导致这些警告的任何问题.
我很茫然,所以任何建议都会很棒.
最佳答案 如果您对包含具有返回VB Collection对象的公共方法的类的COM库的引用,您将收到编译器警告.
_HiddenInterface接口包含在MSVBVM60.DLL中.您可以通过打开OLE视图并导航到类型库>来查看此信息. Visual Basic for Applications(Ver 6.0).双击类型库以显示ITypeLib查看器窗口.您可以在列表中看到接口_HiddenInterface.
您应该能够使用这些函数返回的集合,尽管您无法在Microsoft知识库文章BUG: Error message when you try to pass a Collection object from Visual Basic 6.0 components to Visual Basic 2005 or to Visual Basic .NET: “System.InvalidCastException”中记录的.NET中创建一个实例.