私はdllを持っています。implicitly dllにリンクしています。dll A explicitly dll Bにリンクしています。implicitly dll Z '(Z dllの別のバージョン)にリンクしています。どのように暗黙的にdllとその依存関係を競合することなくリンクするのですか?
さらに、いくつかの要素があります。dll Bはシステムのどこにでも置くことができ、その場所は実行時にXMLファイルを介してdll Aに表示され、loadlibraryを使用してロードされます。
私たちが管理できない制限のため、環境のパスを変更することはできません。
私が問題に持っているのは、dlls AとBが正しいバージョンのZ DLLを使用することです。
どのようなオプションがありますか?
あなたはホースしています。同じライブラリの2つの異なるバージョンを "暗黙的に"ロードすることはできません(私はこれを "dlopen'を使わずに"と呼んでいます)。ライブラリがPICでない場合、同じ仮想アドレス空間に2つの異なるシンボルセットが必要であり、これは明らかに不可能である。 – Borealid
本質的に唯一の選択肢は、Out of Process COMサーバーなどの2つのプロセスの1つを個別のプロセスに外部化することです。 –
ありがとうございました。あなたが回答を投稿したら、私はそれを受け入れます。 – dangerousdave