3.5 C# アプリケーションでサード パーティの VB6 COM オブジェクトにレイト バインドする必要があります (現在のバージョンの依存関係を避けるため)。提供された dll は、通常どおり使用しようとするとエラーが発生するバグがあるため、ほとんどの非遅延バインド方法では使用できません。現在、非常にバージョン固有のカスタム VB6 ラッパーを使用していますが、遅延バインディングを使用してプロパティとメソッドにアクセスできることがわかりました。現在、イベントに遅延バインドしようとしていますが、必要なイベント シンクを作成するには、COM ラッパーのインターフェイスから継承する必要があると書かれています。ここにそのような記事があります。
それで、私の質問は、コンパイル時に dll を参照せずに遅延バインド イベント処理を実行できるかどうかです。
アップデート
VB6ラッパーで発生したエラーは次のとおりです(これはまだ積極的に更新されています)。
- OleViewer では、
選択したアイテムを逆コンパイルできませんでした。タイプ ライブラリ/DLL のロード中にエラーが発生しました。TYPE_E_CANTLOADLIBRARY ($80029C4A)
- Visual Studio では次のようになります。
COM 参照 "3rdPartyDLL" の依存関係を特定できませんでした。タイプ ライブラリ/DLL のロード中にエラーが発生しました。(HRESULT からの例外: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))