[1] アプリケーションがロードされたディレクトリ
[2] System directory
[3] 16bit system directory
[4] Windows directory
[5] カレントディレクトリ
[6] 環境変数PATH
の順らしいです。ということで検証してみた。今回は、検証用の自分自身が配置されている場所を返すプロシージャを含む"studyTest.dll"とそれを用いるコードを書いて確認してみた。
dllを使用する側のプロセス生成時のカレントディレクトリを起点としたディレクトリとファイルツリーは、下記のようになっている。
.\
├─bin
│ studyTest.dll
│ useDll.exe
│
├─lib
│ studyTest.dll
│
└─sub
studyTest.dll
[コマンドプロンプトにおける実行履歴]
> set PATH=%CD%\lib;%PATH%
> .\bin\useDLL.exe
"call_Proc"ボタンを押下。
>move .\bin\studyTest.dll .\bin\studyTest_A.dll
"call_Proc"ボタンを押下。
>move C:\Windows\SysWOW64\studyTest.dll C:\Windows\SysWOW64\studyTest_A.dll
"call_Proc"ボタンを押下。
>move C:\Windows\studyTest.dll C:\Windows\studyTest_A.dll
"call_Proc"ボタンを押下。
>move .\sub\studyTest.dll .\sub\studyTest_A.dll
"call_Proc"ボタンを押下。