C C++ 调用第三方DLL库失败 LoadLibrary 返回NULL 并报 126 错误 解决办法

在之前有写关于生成dll文件以及调用dll的方法:https://blog.csdn.net/Hilaph/article/details/104917856

而在vs2019新开一个项目并运行调用相关第三方dll时,出现LoadLibrary返回值判断为NULL,使用DWORD a = GetLastError();查看错误代码为126.这个报错一般都是因为找不到dll文件所导致的

在网上查阅资料一般为以下几种情况:

(1).看给loadlibrary传的dll路径是否正确

字符串指定完整路径,则该函数仅搜索该模块的路径。通过文件资源管理器中查找该绝对路径下的dll或exe是否存在,指定路径时,一定要使用反斜杠(\),而不是正斜杠(/),字符串中注意需要双反斜杠(\),例:"C:\\Windows\\cmd.exe";

(2).dll关联的其他dll文件是否一起发布,可用depends工具查看dll文件关联的其他dll文件

(3).传递的dll文件名是char[]类型的,这是类型不兼容的错误

在排除前两个错误后,判定是第三种状况,以为LoadLibrary内的字符串下有提示“语意不同的字符串类型之间的强制转换 char * wchar_t*”。

解决办法:

字符集要改为“使用多字节字符集”,重开项目,问题解决。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值