PCゲームやソフトを必要なDLLが無くて動かないときに「DLLが見つかりません」のメッセージが出たりします。
ランタイムパッケージを入れたり、DLLを準備したときにどのようにDLLが検索されているか重要です。
DLLを読み込む場所と順番
- アプリケーションの実行ディレクトリ
- システムディレクトリ(例:C:\Windows\System32やC:\Windows\SysWOW64)
- Windowsディレクトリ(例:C:\Windows)
- カレントディレクトリ
- 環境変数PATHに含まれるディレクトリ
この検索順序の特性で先に読ませたいDLLをロードさせることも可能です。
64bit環境で32bitアプリを動かす時
64bit環境のOSではシステムディレクトリ(C:\Windows\System32)は64bitのDLLが入っているため、32bitアプリではSystem32のDLLは利用されません。
SysWOW64の仕組みで32bitのDLLが用意されているC:\Windows\SysWOW64のディレクトリが利用されます。