1

COM インターフェイスを公開している VB 6 ベースのアプリケーションをアップグレードした後、以前のバージョンに対してビルドされた (.NET 内の) COM クライアントはE_NOINTERFACEエラーを受け取ります。

エラーメッセージ(翻訳済み)、

AProduct.AClass型の COM オブジェクトを型のインターフェイスに変換できませんAProduct._AClass...

ここで何がうまくいかなかったのですか?

E_NOINTERFACEエラーの原因は何ですか?

インターフェイスが COM に公開されると、それを変更することはできないと思いました。古いインターフェイスを継承できる新しいインターフェイス (一意の UUID を持つ) を公開する必要があるため、インターフェイスが誤って更新 (拡張) された可能性があると考えました。

4

1 に答える 1

1

VB 6.0プロジェクトのバージョン互換性設定とは何ですか?(プロジェクトプロパティの[コンポーネント]タブを参照してください)

バイナリ互換性でない場合は、DLLをコンパイルしたときに、コンポーネントによって公開されたインターフェイスとイベントのGUIDが変更されている可能性があります。

詳細については、これらのリソースを確認してください

プロジェクトとバイナリ互換性の使用方法

VisualBasic6.0でのCOMコンポーネントプロジェクトの設定

于 2008-10-30T02:38:29.427 に答える