Qt 使用MinGW编译器调用MinGW编译生成的dll

Qt系列文章目录

前言

今天在qt下调用同事写的dll,发现总是调用失败

HINSTANCE hlib=LoadLibrary(TEXT("MinGW32.dll"));

hlib总是返回空,感觉没有头绪

一、错误原因定位

1.首先确认CartDll.dll是否完整,没有缺少相关的dll库

使用老牌工具:Dependencies.exe
dependencywalker官网下载

把你要查看的dll拖入Dependencies.exe,如果是下图,没有问号,说明没有缺少依赖项
在这里插入图片描述
如果像下图中:libifcoremd.dll
libifportMD.dll
libmmd.dll
这三个库前面图标中有问号,说明CartDll.dll依赖这3个库,需要把这3个库宝贝到CartDll.dll同级目录下,就不会出现问号了,当然了一定要匹配才行,比方说这三个库外加CartDll.dll他们的编译方式同事相同的,例如都使用MinGW32、MinGW64, windows x64或者windows x86等
在这里插入图片描述

二、在Qt中查看程序编译方式

1.查看配置

点击“工具”->“选项”
在这里插入图片描述


## 2.选择Desktop Qt5.12.9 MinGW 32-bit
因为同事提供的CartDll是用MinGW32位编译的,如果选择 MSVC2017的话,加载CartDll就会失败
![在这里插入图片描述](https://img-blog.csdnimg.cn/25ce65d87bc7497ea41fdb10a6428cfc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aaZ5Li6,size_20,color_FFFFFF,t_70,g_se,x_16)
## 3.确认编译是用Desktop Qt5.12.9 MinGW 32-bit
选择“Debug”带电脑图标,然后构建
![在这里插入图片描述](https://img-blog.csdnimg.cn/99db05a6e13a40a0a291a7f5dfcf30df.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aaZ5Li6,size_20,color_FFFFFF,t_70,g_se,x_16)

然后,点击“项目”带扳手图标,在选择Build和Run
![在这里插入图片描述](https://img-blog.csdnimg.cn/129eb57cb1924d03a0b89cb065bc0cff.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aaZ5Li6,size_20,color_FFFFFF,t_70,g_se,x_16)

# 总结
总之在调用别人写的dll时,一定要确认别人的编译方式,否则可能调用失败

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值