0

ピボットテーブルを正しく表示するためにMSOLAP80.dllを使用する必要があるvb6プログラムがあります。しかし、MSOLAP90.dllにはこれとの互換性の問題があるため、MSOLAP90.dllを使用できず、ピボットテーブルを表示できます。

MSOLAP90.dllを登録してから、MSOLAP80.dllを再度登録しましたが、すべて問題ないようです。ただし、両方が実際に登録されているのか、MSOLAP80.dllだけが登録されているのかはわかりません。これは、MSOLAP90.dllの新機能に関する参照ポイントがないためです。両方が登録されていて、プログラムがMSOLAP80.dllを使用している可能性はありますか?MSOLAP90.dllを必要とするプログラムがある場合は、そのプログラムを使用することがわかりますか?

DLLの登録がどのように機能するか、そしてこれらの両方を同時に登録することが可能かどうかについて、私は混乱していると思います。誰かが説明を手伝ってもらえますか?

4

1 に答える 1

0

どちらが登録されているかを確実に知りたい場合は、次のことができます。

  • DLL のパスに一致するタイプ ライブラリの参照ダイアログを見てください。
  • RegEdit を開き、MSOLAP80.DLL または MSOLAP90.DLL を検索します ([文字列全体に一致する] のチェックを外します)。

両方の DLL の参照が見つかった場合は、特定のバージョンにバインドできるため安全です。間違った DLL への参照を見つけた場合は、間違った DLL を登録解除し、正しいものを登録します。

COM は当初、一連の CLSID (クラスを一意に識別する)、IID (クラスのインターフェイスを一意に識別する) の 1 つのバージョンのみを許可していました。LIBID (タイプ ライブラリ (DLLL に埋め込まれたリソース) を識別する) への複数の参照を持つことは可能ですが、異なるバージョンを持つ必要があります。

Windows XP 以降では、レジストリ内の値をオーバーライドして、実行可能ファイルが特定のバージョンの DLL にアクセスできるサイド バイ サイド DLL アクセスが可能になりました。EXE ファイルと同じフォルダーに .manifest ファイルを埋め込むか、保持する必要があります。

残念ながら、これに関するドキュメントは MSDN から消えたようで、いくつかのナレッジ ベース記事でのみ参照されています。

于 2012-08-07T08:02:30.413 に答える