解决问题丨Demo中使用loadlibrary返回 NULL,错误码0

本文详细记录了解决LoadLibrary加载.dll失败的问题。首先通过GetLastError获取错误代码,发现是系统内存不足或文件损坏。尝试使用LoadLibraryEx并指定LOAD_WITH_ALTERED_SEARCH_PATH标志,但问题依旧。最终解决方案是将整个项目Debug目录的文件复制到目标程序目录,确保所有依赖项就绪,从而成功加载DLL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题已解决

参考:
参考1:LoadLibrary无法加载.dll解决思路丨包含静态库动态库介绍,引文中含有错误代码表链接,可以对照使用
参考2:loadlibrary返回 NULL , 错误码值126丨包含对我的问题生效的解决方法

解决办法:

  1. 原程序
//源程序
g_hInstance = ::LoadLibrary(L"dll文件名");
//结果
g_hInstance == NULL
  1. 使用GetLastError()进行查错,与参考1中引文的错误代码表对照
//源程序
g_hInstance = ::LoadLibrary(L"dll文件名");
DWORD dwError = 1;
dwError = GetLastError();
//结果
dwError == 0;//操作失败 返回错误代码0  系统内存不够,可执行文件被破坏或调用非法
  1. 解决尝试1->使用参考2中的方法改正
//源程序
LoadLibraryEx(L"E:\\PYP_FStest\\Debug\\libDocEngine.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);//ATTENTION!要用双斜杠 不然会被认为是转义字符!
//结果
仍然为NULL
  1. 解决尝试2
//将大项目Debug目录下的所有文件,而不只是直接需要的一个dll和一个lib都粘贴到Demo的Debug目录下
//成功
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值