PCゲームやソフトがDLLを読み込む場所と順番

PCゲームやソフトを必要なDLLが無くて動かないときに「DLLが見つかりません」のメッセージが出たりします。

ランタイムパッケージを入れたり、DLLを準備したときにどのようにDLLが検索されているか重要です。


DLLを読み込む場所と順番

  1. アプリケーションの実行ディレクトリ
  2. システムディレクトリ(例:C:\Windows\System32やC:\Windows\SysWOW64)
  3. Windowsディレクトリ(例:C:\Windows)
  4. カレントディレクトリ
  5. 環境変数PATHに含まれるディレクトリ
この検索順序の特性で先に読ませたいDLLをロードさせることも可能です。

64bit環境で32bitアプリを動かす時

64bit環境のOSではシステムディレクトリ(C:\Windows\System32)は64bitのDLLが入っているため、32bitアプリではSystem32のDLLは利用されません。

SysWOW64の仕組みで32bitのDLLが用意されているC:\Windows\SysWOW64のディレクトリが利用されます。
Next Post Previous Post