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

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

前言

今天在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.查看配置

点击“工具”->“选项”

ab9be55cec804ae8a7726ccb34344c53.png

## 2.选择Desktop Qt5.12.9 MinGW 32-bit
因为同事提供的CartDll是用MinGW32位编译的,如果选择 MSVC2017的话,加载CartDll就会失败
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/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://ucc.alicdn.com/images/user-upload-01/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://ucc.alicdn.com/images/user-upload-01/129eb57cb1924d03a0b89cb065bc0cff.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aaZ5Li6,size_20,color_FFFFFF,t_70,g_se,x_16)
# 总结
总之在调用别人写的dll时,一定要确认别人的编译方式,否则可能调用失败


相关文章
|
2月前
|
C++
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
本文介绍了如何编译整合VTK 9.2、DICOM 0.8、DCMTK 3.6.7和Qt 6.2的步骤,包括安装Qt、CMake配置以及确认相关路径和版本设置。
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
|
2月前
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
130 1
VS2022+Qt5.14.2成功编译MITK2022.10
|
2月前
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
2月前
|
C语言 C++ Windows
QT多插件通信框架CTK编译记录
本文记录了编译QT多插件通信框架CTK的过程,包括编译结果截图、部署配置、Log4Qt编译配置、参考链接和拓展资料。文中提供了详细的编译步骤和配置文件示例,以及相关的资源链接。
QT多插件通信框架CTK编译记录
|
2月前
|
机器学习/深度学习 Java 计算机视觉
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
本文记录了使用mingw81_64编译OpenCV 4.5.5、Qt 5.15.2、VTK 9.1的详细过程,包括编译结果截图、编译步骤、遇到的问题及其解决方案,以及相关参考链接。文中还提到了如何编译boost源码为静态库,并提供了测试代码示例。
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
88 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
3月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
152 2

推荐镜像

更多