900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > VS LoadLibrary加载DLL失败的解决方案 GetLastError()返回值193

VS LoadLibrary加载DLL失败的解决方案 GetLastError()返回值193

时间:2018-12-29 02:52:44

相关推荐

VS LoadLibrary加载DLL失败的解决方案 GetLastError()返回值193

遇到的问题

代码如下

void *p=NULL;p=LoadLibrary("***.dll");

通过单步调试发现,p的值始终为0X00000000,即LoadLibrary调用失败

查了很多资料,将总结以及我的解决方案记录如下

检查路径是否正确。我用的是相对路径,相对路径需要把该dll文件放在程序生成的exe文件目录下(也就是VS中 项目->属性->(配置属性)常规->输出目录),然后由于字符格式问题,可以写成这样p=LoadLibrary(TEXT("***.dll"));TEXT宏可以消除格式问题。DLL的一致性问题。也就是exe版本必须要和dll版本在debug/release上是一致的,x64或者win32可能也需要保持一致。我是用的release x64版本。如果还没有解决问题,采用GetLastError()函数获取错误消息,GetLastError()函数是获取上一个发生错误的结果的api,所以要在LoadLibrary下一行接着调用

void *p=NULL;p=LoadLibrary("***.dll");DWORD error_id=GetLastError();

通过打印或者在单步调试中查看error_id的值,然后搜索相应解决办法。我的返回值是193,主要问题是我加载的这个dll还关联着其他的dll,所以我将需要用到的dll都放在了exe程序的目录下就成功运行了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。