2011-07-14 11 views
4

埋め込みinteropタイプ機能を利用するために、最近私のC#ソリューションの1つをVS2008から2010にアップデートしました。私たちは、現在の私たちの遺産との相互作用のために、 VB6コードベース。 「_HiddenInterface」埋め込みInteropタイプの使用時の警告

私の周りで検索しました:

タイプライブラリの輸入がIUnknownの由来ではないインターフェイスが発生しました:私は私のソリューションをコンパイルするとき

は、何らかの理由で、私は次のメッセージを取得しています今のところ私が見つけることができる唯一の2ビットの情報は、「それを無視するだけです」と「VB6コードがいくつかのルールを破っている」ということです。 VBのコードベースは私たちのものなので、コンパイル時に0の警告があることが望ましいです。これらの警告の原因を修正したいと思います。

私は迷っていますので、助言があれば大丈夫です。

+0

誰かがこれを説明できると思ったでしょうか? – Akuma

+0

これは、Visual Basic型とVBA型との関係があるようです。 VBAタイプは、インターネットに応じてVB6アプリケーションからのみ作成できます。 –

答えて

2

VBコレクションオブジェクトを返すパブリックメソッドを含むクラスを含むCOMライブラリへの参照がある場合、コンパイラの警告が表示されます。

_HiddenInterfaceインターフェイスは、MSVBVM60.DLLに含まれています。これは、OLEビューを開き、タイプライブラリ>Visual Basic for Applications(Ver 6.0)にナビゲートすることで確認できます。タイプライブラリをダブルクリックして、ITypeLib Viewerウィンドウを開きます。リストにinterface _HiddenInterfaceが表示されます。

Microsoft KB資料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でインスタンスを作成することはできませんが、これらの関数から返されたコレクションを使用できるはずです。

+0

MSFTの記事は実際には2つの別々の問題を文書化しているようです。私はこの質問に関連するのはCOMExceptionのものだと思う。 – DaveInCaz

関連する問題