#Error 126 (ERROR_MOD_NOT_FOUND:指定されたモジュールが見つかりません。)
LoadlibraryでDLLをダイナミックにロードする時のロード失敗です。失敗したファイル名は教えてくれません。ロードしたいDLLそのものがロードできないのなら話は簡単ですが、ターゲットDLLが別のDLLをロードしようとして失敗した場合、解決に手間取ることがしばしばあります。
#方法
LoadLibraryを使わずLibファイルをリンクしてDLLをロードするコンソールアプリケーションを作ります(暗黙的リンク)。実行するとWindowsはアプリケーション開始時にDLLロードに失敗し、失敗の原因となったDLLを表示します。DLLからDLLを呼んでいる場合も含めて失敗したファイル名を教えてくれます。
※この方法は、ロードするDLLのLIBファイルがあって暗黙的リンクできる場合だけしか使えません。
#実施例
下の例はエラーを起こすDLL内の関数"registerDLL"を呼びだしています。
ConsoleApplication1.cpp
#include "stdafx.h"
void __stdcall registerDLL();
int _tmain(int argc, _TCHAR* argv[])
{
registerDLL();
return 0;
}
リンクするLibファイルの名前とディレクトリをリンカに設定して、暗黙リンクとします。