LoadLibraryが失敗するとき

DLLを明示的に利用するとき
LoadLibraryしますが、DLLが存在するのに失敗することがあります。


DLLがほかのDLLを暗黙的に利用していて、ほかのDLLが存在しないときに失敗します。


/Debug/a.exe
/Debug/b.dll
/Debug/c.dll
/Release/b.dll
/Release/c.dll


a.exeがb.dllを明示的に呼びだす
b.dllはc.dllを暗黙的に呼びだす


/Debug/a.exe

/Release/b.dll


こんな構成の場合、失敗するときと成功するときがあります。
起動時は失敗するのだが、起動後は成功しました。


この場合、
/Release/b.dll は /Release/c.dll を使ってくれない
/Debug/c.dll が利用されるはず。


ここに危険な罠が含まれているような気がします。


ただの設定ミスだったんですが…