[Visual C++] LoadLibrary が失敗する原因

この記事は3年以上前に書かれた記事です。情報が古い可能性があります。

Win32でDLLを明示的ロードするとき、LoadLibrary API関数を使用するのだけど、この引数に渡すDLLファイルのパスが正しいにも関わらず失敗(戻り値 0)することがある(フルパスで指定しても失敗する)。

引数に渡したDLLがあからさまに存在するのに失敗する場合、対象DLLが別のDLLを使用していて、そちらのロードに失敗している可能性がある。なので、対象DLLが使用しているDLLが存在するか調べる。

Visual Studio 付属ツールの dumpbin を使う。(Linux でいえば ldd みたいなやつ)

dumpbin /dependents hoge.dll

ここに表示されるDLLもちゃんと存在するか(パスが通っているか)確認する。

タイトルとURLをコピーしました