ホームページ  >  記事  >  バックエンド開発  >  静的にリンクされた DLL の DLL 検索パスをカスタマイズするにはどうすればよいですか?

静的にリンクされた DLL の DLL 検索パスをカスタマイズするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 16:47:01229ブラウズ

How to Customize the DLL Search Path for Statically Linked DLLs?

静的にリンクされた DLL の DLL 検索パスのカスタマイズ

DLL を静的にリンクすると、DLL が実行可能ファイルに確実に組み込まれますが、DLL のデフォルトの検索パスはDLL は実際の場所と一致しない可能性があります。これに対処するために、次のような検索パスを変更するさまざまなアプローチがあります:

  • 動的読み込み: LoadLibrary("plugins/Plugin.dll") と GetProcAddress を利用してプラグインにアクセスする
  • 環境の変更: システムの PATH 環境変数にプラグイン フォルダーへのパスを追加し、アプリケーションがそのフォルダー内の DLL を見つけられるようにします。
  • 遅延ロード: 遅延ロード メカニズムを利用して、必要になるまでプラグイン アクセスを延期し、指定されたパスで DLL をロードするカスタム ヘルパー関数を作成できるようにします。
  • アセンブリ変換: plugins.dll をリストした .manifest ファイルを作成して、plugins フォルダーをアセンブリに変換します。 「プラグイン」をアプリケーションの依存アセンブリとしてマークし、アセンブリ内の DLL を検索するように指示します。
  • DLL パス操作によるスタブ実行: アプリケーションをスタブ実行可能ファイルに分割し、動的にロードされるコンポーネント。スタブ実行可能ファイルで、SetDllDirectory を呼び出してプラグイン フォルダーへのパスを指定し、LoadLibrary を呼び出してフル パスを使用して実際のプラグイン DLL をロードします。

以上が静的にリンクされた DLL の DLL 検索パスをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。