繁体   English   中英

LoadLibrary 在运行时加载 dll 时返回 126

[英]LoadLibrary returns 126 when loading a dll in runtime

我有 MFC dll 文件,它试图在运行时使用LoadLibrary ZC1C425268E683894D1AB4A 加载另一个 dll。
下面的代码在带有MBCS character set的控制台应用程序中运行良好。
但是,我在 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 function 就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM