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 が利用されるはず。
ここに危険な罠が含まれているような気がします。
ただの設定ミスだったんですが…