[英]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.");
}
错误代码告诉您找不到模块。 任何一个:
我现在已经找到了根本原因。 我忘了告诉我在调试时在我的应用程序进程中附加了 dll。
该应用程序要求Soft.FXX.dll
应与它位于同一目录中。 我真的认为将整个 dll 路径输入到LoadLibrary
function 就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.