アプリケーションが DLL に静的にリンクされている場合、アプリケーションはDLL は独自のディレクトリにあります。ただし、DLL が別の場所に配置されている場合、アプリケーションはその DLL をロードできません。
方法 1: 依存関係のロード
DLL を静的にリンクする代わりに、LoadLibrary() と GetProcAddress() を使用した動的読み込みを使用します。これにより、アプリケーションは指定されたパスから DLL をロードできるようになります。
方法 2: PATH 環境変数を変更する
DLL の場所へのパスを PATH 環境変数に追加します。 。これにより、PATH 変数を使用して検索するすべてのアプリケーションが DLL にアクセスできるようになります。
方法 3: 遅延ロード メカニズム
以下に基づいて DLL をロードするカスタム ヘルパー関数を実装します。提供されたパス。これにより、アプリケーションで必要になるまで DLL の読み込みが遅延します。
方法 4: アセンブリ マニフェスト
DLL のフォルダーにマニフェスト ファイルを作成し、フォルダーをアセンブリとして指定し、 DLLのリストを表示します。 #pragma comment ディレクティブを使用して、このアセンブリをアプリケーションの依存関係マニフェストに追加します。
方法 5: スタブ実行可能ファイルと SetDllDirectory
DLL 検索パスを設定するスタブ実行可能ファイルを作成する実際のアプリケーションを DLL としてロードする前に、SetDllDirectory() を使用して DLL の場所に移動します。
以上が静的にリンクされた DLL の DLL 検索パスを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。