0

最近、VB6から呼び出すために作成されたC#相互運用機能を再構築する必要がありました。(コードベーススイッチを使用して)regasmに登録し、VB6プロジェクトへの参照としてtlbを追加しましたが、これを呼び出そうとすると、次の自動化エラーが発生します:-2146232832(0x80131600)

既存の相互運用DLLをまったく同じ方法で登録し、プロジェクトに追加すると、正常に機能します。私が考えることができる唯一の違いは、プロジェクトがVS8からVS9(ただし同じ.netバージョン)にアップグレードされ、現在64ビットマシンでコンパイルしていることです(これには問題があることがわかっています)。プロジェクトをx86としてコンパイルするように設定しましたが、それでも自動化エラーが発生します。

何か案は??

4

1 に答える 1

2

C# コードが例外をスローしていますが、キャッチされていません。具体的には ApplicationException です。これは、フレームワーク コードが決してスローしない例外であり、C# ソース コードに配置する必要があります。

問題が見つからない場合は、コードをデバッグする必要があります。Project + Properties、Debug タブでこれを行います。[外部プログラムの開始] を選択し、c:\program files\microsoft visual studio\vb98\vb6.exe をポイントします。次に、[デバッグ + 例外] で、CLR 例外の [スロー] チェックボックスをオンにします。

F5 を押すと、VB6 IDE が実行を開始します。VB6 プロジェクトをロードし、問題を再現します。デバッガーは、例外をスローする C# コードの行で停止します。

于 2012-08-15T19:08:25.617 に答える