ここで何かを誤解しているようです。クライアントが使用するためにエクスポートされたいくつかの C++ クラスを持つ DLL (DLL_1 など) があります。
静的ライブラリは、これらのエクスポートされたクラス (SLib_1 など) を使用します。
前述のスタティック ライブラリのみに依存するため、SLib_1 にリンクするDLL (DLL_Client など) がもう 1 つあります。ので、私は持っています:
DLL_Client ==> SLib_1 ==> DLL_1
SLib_1 のビルド中に、リンカーは DLL_1 からエクスポートされたクラスを解決しますか? その部分は、DLL_Client がビルドされているときにのみ発生しますか?
上記の回答に応じて、別の質問があります。SLib_2 など、さらに別の静的ライブラリがあるとします。上記の依存関係パスを次のように再描画すると:
DLL_Client ==> SLib_2 ==> SLib_1 ==> DLL_1 (各モジュールは、それに続くモジュールのみを認識してリンクします)
DLL_1 によってエクスポートされたシンボルを DLL_Client に表示する必要がありますか? このセットアップ全体をコンパイル/リンクしている間、問題はありません。私の問題は実行時にのみ発生します。つまり、Dependency Walker を使用して DLL_Client をロードすると、DLL_1 でエクスポートされた関数を解決できないというエラーが表示されることがわかりました。
何を与える?