社内で作成された DLL があり、これにはスタブの静的 LIB が関連付けられています。
また、DLL の LIB ファイルに静的にリンクする (つまり、手動で LoadLibrary を使用しない) 簡単な方法を使用して、この DLL を使用する EXE もあります。
EXE を展開するとき、DLL ファイル名を難読化の理由で (顧客の要求に応じて) 変更したいと考えています。
EXE が DLL を自動的に見つけられるようにするにはどうすればよいでしょうか。
DLL ファイルと LIB ファイルの名前を変更して (通常の名前にビルドした後)、名前を変更した LIB にリンクするように EXE プロジェクト設定を変更してみました。これは実行時に失敗します。DLL の名前は LIB ファイルに焼き付けられており、「.lib」を「.dll」に置き換えるリンカによって単純に推測されるわけではないからです。
一般に、この難読化を DLL のすべての使用に適用したくないため、現在の DLL プロジェクトの出力ファイルをそのまま維持したいと考えています。
DLL の LIB ファイルを編集し、DLL ファイルのハードコードされた名前を別のものに置き換えることができる方法があることを願っています。その場合、これは完全に EXE プロジェクト内で行うことができます (おそらくビルド前のステップとして)。
更新: DLL にエクスポートされた C++ クラスが含まれているため、遅延読み込みが機能しないことがわかりました。この記事を参照してください。
代替手段はありますか?