LoadLibrary returns 126 在运行时加载 dll 时

LoadLibrary returns 126 when loading a dll in runtime

我有 MFC dll 文件,它试图在运行时使用 LoadLibrary 函数加载另一个 dll。
下面的代码在具有 MBCS 字符集.
的控制台应用程序中运行良好 但是,我在 MFC dll 中使用的相同代码无法正常工作。

GetLastError 尝试总是返回 126,即 Module NOT Found
我的 MFC dll 有 MBCS 字符集
我什至尝试将 dll 放在工作目录中,尝试使用 dll 名称访问它,但仍然找不到它。
我花了几个小时寻找解决方案,但没有解决我的问题。

我尝试使用 Dependency Walker 查看 dll,它加载正常。
有人有想法吗? 这是我的示例片段代码:

HINSTANCE dllGetproc = LoadLibrary((LPCSTR)"C:\Proj\dev\Soft\Soft.FXX.dll");

if (!dllGetproc ) {
    Format(var,"Could not load the dynamic library error = %d", GetLastError());
    Log(var);
}
else {
    Log("Loaded successfully.");
}

错误代码告诉您找不到模块。或者:

  1. 找不到您要加载的库。
  2. 可以找到该库,但如果找不到它的依赖项(通常是 MSVC 运行时库)。

我现在已经找到根本原因了。我忘了告诉我在调试时我在我的应用程序进程中附加了dll。
该应用程序要求 Soft.FXX.dll 应与其位于同一目录中。我真的认为将整个 dll 路径提供给 LoadLibrary 函数就足够了。