2011-03-31 18 views
1

1.1 VB.NETコードで相互運用型のCOMアセンブリを使用していますが、クラスのプロパティを設定しようとすると、 "QueryInterface for Interface xxx failed"というメッセージでINvalidCastExceptionエラーが発生します。 。また、何も返します、それが有効な.NETアセンブリではありませんエラーを働いていない。..します。regsvr32とのregasm方法を使用して、COMファイルを登録しよう...私の専門家インターフェイスのクエリーインターフェイスが失敗しました

私は、エラーのスクリーンショットを添付している

http://www.filefactory.com/file/ca7a55e/n/error.jpg

...相互運用を助けてください。 peachwserver.dllはcomオブジェクトです.. Smtpmailerはプロジェクトです... peachtreeloginsingletonはcomからログインクラスを継承するクラス名です

答えて

1

サーバーが登録されていない場合、この例外は発生しません。登録の問題があると思われる場合は、コンポーネントベンダーまたは著者に連絡して、正しい手順がどのようなものかを調べてください。世話をするインストーラが標準です。

interopライブラリの作成に使用したタイプライブラリが、実際にインストールされているCOMサーバーのバージョンと一致しない場合、QueryInterfaceは失敗します。 DLL地獄のかなり典型的な例です。コーナーケースがスレッドでサーバーを使用しようとしています。そのためには、サーバーを登録するためのプロキシ/スタブが必要です。これは一般的に利用できません。唯一の回避策は、オブジェクトが作成されたスレッド内のメソッドだけを呼び出すことです。このシナリオも、コンポーネントベンダーとの関係で最もよく確認されています。

+0

こんにちは、私はいくつかの詳細を更新しました – Baga

+0

@peterいくつかの詳細を更新しました – Baga

+0

タイプライブラリを見つけることができません。サポートについては、ベンダーにお問い合わせください。 –

関連する問題