在Qt中使用LoadLibrary无法加载DLL
Qt系列文章目录
文章目录
- Qt系列文章目录
- 前言
- 一、问题分析
前言
最近因项目需要使用qt做开发,之前使用LoadLibrary加载dll成功,很庆幸,当一切都那么顺风顺水的时候,测试同事却发现,在windows平台上个别电脑上加载dll会失败。现在加载返回空指针,强大的qt提供了QLibrary类,方便dll动态加载。
DWORD iErrorCode;HINSTANCE hlib=LoadLibrary(TEXT("CartDll.dll"));if(!hlib){iErrorCode = GetLastError();cout<<" last error code = "<<iErrorCode<<endl;cout<<"open cart dll error!"<<endl;return -1;}
在Qt中使用LoadLibrary无法加载DLL

一、问题分析
1.首先想到的是CartDll.dll相关依赖库缺失,查找dll依赖文件的方法
使用visual studio自带的工具查找

进入CartDll.dll所在目录,
输入命令:dumpbin -imports CartDll.dll
或者使用从定向到txt文本中:dumpbin -imports CartDll.dll > result.txt

Microsoft (R) COFF/PE Dumper Version 14.29.30138.0
Copyright (C) Microsoft Corporation. All rights reserved.Dump of file CartDll.dllFile Type: DLLSection contains the following imports:libifcoremd.dll1800AE0C8 Import Address Table1800BBCF0 Import Name Table0 time date stamp0 Index of first forwarder reference176 for_inquire249 for_rewind282 for_write_int_fmt_xmit281 for_write_int_fmt12B for_dealloc_allocatable289 for_write_seq_lis_xmitD2 for_concat278 for_trim248 for_read_seq_xmit242 for_read_seqDD for_cpystrD1 for_close1B2 for_pause246 for_read_seq_lis_xmit288 for_write_seq_lis245 for_read_seq_lis1B1 for_open179 for_is_nan_s_26F for_stop_core287 for_write_seq_fmt_xmit286 for_write_seq_fmtlibifportMD.dll1800AE178 Import Address Table1800BBDA0 Import Name Table0 time date stamp0 Index of first forwarder reference154 SYSTEMlibmmd.dll1800AE188 Import Address Table1800BBDB0 Import Name Table0 time date stamp0 Index of first forwarder reference1D8 cbrtf336 sinf2E2 logf345 tanf153 __libm_sse2_sincos1EE cexpf20B cos20F cosf173 __powr4i42D7 log10f30C powf154 __libm_sse2_sincosf246 expf19C acosfMSVCR110.dll1800AE040 Import Address Table1800BBC68 Import Name Table0 time date stamp0 Index of first forwarder reference336 _lock49B _unlock5EB memmove18D __dllonexit3DD _onexit17E __clean_type_info_names_internal161 __CppXcptFilter1E0 _amsg_exit5A3 free347 _malloc_crt2C6 _initterm2C7 _initterm_e1F6 _calloc_crt5E9 memcpy5ED memset160 __C_specific_handlersvml_dispmd.dll1800AE200 Import Address Table1800BBE28 Import Name Table0 time date stamp0 Index of first forwarder reference392 __svml_logf4399 __svml_logf4_mask3BB __svml_powf4_mask3B6 __svml_powf4316 __svml_irem4482 __svml_tanf4286 __svml_expf410 __svml_acosf41AE __svml_cosf428B __svml_expf4_maskKERNEL32.dll1800AE000 Import Address Table1800BBC28 Import Name Table0 time date stamp0 Index of first forwarder reference318 GetTickCount642FB GetSystemTimeAsFileTime22E GetCurrentThreadId43F QueryPerformanceCounter118 DecodePointer140 EncodePointer132 DisableThreadLibraryCallsSummary193FE000 .data3000 .pdataF000 .rdata3000 .reloc1000 .rsrcAD000 .text
2.方法二使用Dependencies.exe工具打开 CartDll.dll

3.方法3:修改代码
int main()
{DWORD iErrorCode;
// HINSTANCE hlib=LoadLibrary(TEXT("CartDll.dll"));// QString strFilePath = "CartDll.dll";LPCWSTR lpLibFileName = TEXT("E:\\osg\\work\\CallCartDll_20230721\\CallCartDll\\CartDll.dll");HINSTANCE hlib= LoadLibraryEx(lpLibFileName,NULL,LOAD_WITH_ALTERED_SEARCH_PATH);if(!hlib){iErrorCode = GetLastError();cout<<" last error code = "<<iErrorCode<<endl;cout<<"open cart dll error!"<<endl;return -1;}}相关文章:
在Qt中使用LoadLibrary无法加载DLL
Qt系列文章目录 文章目录 Qt系列文章目录前言一、问题分析 前言 最近因项目需要使用qt做开发,之前使用LoadLibrary加载dll成功,很庆幸,当一切都那么顺风顺水的时候,测试同事却发现,在windows平台上个别电脑上加载dll会…...
如何将区块链新闻稿发布到海外媒体?
随着区块链技术的不断发展,越来越多的区块链项目涌现出来,各大媒体也开始关注和报道区块链新闻。然而,如何将区块链新闻稿发布到海外媒体成为了许多区块链项目所面临的难题。本文将介绍一些有效的方法,帮助区块链项目将新闻稿发布…...
基于 CentOS 7 构建 LVS-DR 群集。
1.准备实验环境 本次实验我准备了4台虚拟机 DS:DIP--192.168.163.138 VIP--192.168.163.200 RIP1(web1)--192.168.163.140 RIP2(web2)--192.168.163.141 Client:user--192.168.163.142 2.配置服务器环境 1)搭建简易的web服务 RIP1 [rootlocalhost ~]# yum …...
防火墙组建双击热备后,点击管理对端设备,老是打不开,怎么办?
环境: 防火墙 8.0.75 AF-2000-FH2130B-SC 问题描述: 防火墙组建双击热备后,点击管理对端设备,老是打不开,怎么办? 浏览器老是加载 解决方案: 1.打开设置查看双机连接的心跳接口是哪个端口 …...
【Kubernetes】Kubernetes之Pod详解
Pod 一、 Pod1. Pod 基础概念2. 在 Kubrenetes 集群中 Pod 使用方式2.1 pasue 容器2.2 kubernetes 中的 pause 容器提供的功能 3. Pod 的概念和结构组成4. Pod 的分类5. Pod 容器的分类5.1 基础容器(infrastructure container)5.2 初始化容器(…...
电商与客服系统完美对接指南源码-无缝对接唯一客服系统-提升电商客户体验...
提升电商客户体验,无缝对接唯一客服系统,助您商城腾飞! 在如今竞争激烈的电商领域,除了优质的商品和吸引人的价格,出色的客户服务同样不可或缺。一个高效的客服系统能够为您的电商商城带来更多的机会,建立顾…...
新知识:Monkey 改进版之 App Crawler
原生Monkey 大家知道Monkey是Android平台上进行压力稳定性测试的工具,通过Monkey可以模拟用户触摸屏幕、滑动、按键等伪随机用户事件来对设备上的程序进行压力测试。而原生的Android Monkey存在一些缺陷: 事件太过于随机,测试有效性大打折扣…...
黑马头条项目学习--Day3: 自媒体文章发布
Day3: 自媒体文章发布 Day3: 自媒体文章发布1) 素材管理-图片上传a) 前期微服务搭建b) 具体实现 2) 素材管理-图片列表a) 接口定义b) 具体实现 3) 素材管理-照片删除/收藏a) 图片删除a1) 接口定义a2) 代码实现 b) 收藏与取消b1) 接口定义b2) 代码实现 4) 文章管理-频道列表查询…...
使用frp实现内网穿透
1、介绍 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上&a…...
安装 opendr 踩坑记
复现早期的优化算法需要用到opendr,踩坑一天记录!!! 测试是否成功安装的命令 >>> import opendr >>> opendr.demo("texture")失败案例 python 3.8.15 numpy1.23.0 mayavi4.8.1 chumpy0.70 cpython…...
各地区-各行业法人单位、区划数63个指标(2010-2022年)
一、数据介绍 数据名称:各地区-各行业法人单位、区划数63个指标 数据年份:2010-2022年(法人单位至2021年) 数据样本:404条 数据来源:自我整理 二、指标说明 行政区划代码 地区 长江经济带 经度 纬…...
W5500-EVB-PICO作为TCP Client 进行数据回环测试(五)
前言 上一章我们用W5500-EVB-PICO开发板通过DNS解析www.baidu.com(百度域名)成功得到其IP地址,那么本章我们将用我们的开发板作为客户端去连接服务器,并做数据回环测试:收到服务器发送的数据,并回传给服务器…...
web前端面试--递归(斐波那契数列)
web面试题 本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 文章目录 web面试题定义源码测试示例 之前去笔试&…...
Vue3 Props组件简单应用(父组件获取子组件数据)
去官网学习→Props | Vue.js 运行示例: 代码:App.vue <template><img alt"Vue logo" src"./assets/logo.png"><h2>Vue Props数据传递</h2><h4>子组件中的数据:{{ content }}</h4>…...
Mybatis查询
返回实体类,必须指定返回类型, resultType不能省略,并且数据库字段名与实体类不一致会填充NULL,实体类我们一般都是驼峰,数据库字段一般都是下划线,所以在查询的时候可以起别名解决,属性填充本质上调用的是…...
如何让ES低成本、高性能?滴滴落地ZSTD压缩算法的实践分享
前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于滴滴ES日志场景每天写入量在5PB-10PB量级,写入压力和业务成本压力大,为了提升ES的写入性能,我们让ES支持ZSTD压缩算法,本篇文章详细展开滴滴…...
[数据集][目标检测]PCB板缺陷目标检测数据集VOC格式693张6类别
数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):693 标注数量(xml文件个数):693 标注类别数:6 标注类别名称:["missing_hole",…...
Linux 安装中文输入法
在linux安装ibus输入法 在linux安装ibus输入法 加入开机自启动 运行以下命令以编辑IBus配置文件:如果没有该文件,则可以创建一个新文件。 nano ~/.xprofile将以下内容添加到文件中:这些命令将设置相应的环境变量并启动IBus守护进程。 ex…...
redisson
redisson 使用 1,导入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.12.5</version> </dependency>2,创建配置类 package com.woniu.config;impor…...
源码分析——HashMap(JDK1.8)源码+底层数据结构分析
文章目录 HashMap 简介底层数据结构分析JDK1.8之前JDK1.8之后 HashMap源码分析构造方法put方法get方法resize方法 HashMap常用方法测试 HashMap 简介 HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。 JDK1.8 之前 HashM…...
如何用GHelper优化华硕笔记本性能:3步完整配置指南
如何用GHelper优化华硕笔记本性能:3步完整配置指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar,…...
Foundation Magellan 怎么用?
如何创建麦哲伦导航 麦哲伦导航就是一个导航索引,创建方式如下: 实例 <div data-magellan-expedition"fixed"> <dl class"sub-nav"> <dd data-magellan-arrival"page1"><a href"#page1">…...
Java静态编译内存崩溃全解(GraalVM 22.3+适配版):ClassLoader隔离失效、Metaspace伪泄露、Native Image Heap碎片化三重围剿
第一章:Java静态编译内存崩溃全解(GraalVM 22.3适配版):ClassLoader隔离失效、Metaspace伪泄露、Native Image Heap碎片化三重围剿GraalVM 22.3 引入的 Substrate VM 增强了静态编译能力,但同时也放大了三类隐蔽内存问…...
EventBus @Subscribe注解全解析:除了threadMode,sticky和priority这两个属性你用对了吗?
EventBus Subscribe注解深度解析:解锁sticky与priority的高级玩法 当EventBus的Subscribe注解出现在你的Android代码中时,大多数开发者可能只关注了threadMode这个属性。但今天我们要把聚光灯转向两个常被忽视却同样强大的功能:sticky事件和p…...
Hermes 的五种多 Agent 协作模式
单个 AI Agent 的能力有上限。当任务复杂到需要并行处理、多角色分工、或跨领域协作时,多 Agent 协作就成了必然选择。 本文系统梳理 Hermes 支持的五种多 Agent 模式,对比不同协作架构的优劣,并给出各场景下的实践建议。 一、Agent 分工模式…...
PHP SAAS 框架常见问题——云编译时 node.js 内存不足导致内存溢出
云编译时 node.js 内存不足导致内存溢出问题:部分小伙伴购买插件/应用太多时,云编译时会有 js 报错,如图:解决办法:1.如果是在编译 admin 端的溢出报错:打开源码根目录下的 admin/package.json 文件将 buil…...
Blazor 2026配置避坑大全,12个高频崩溃场景+对应csproj/.cshtml/.razor配置修复代码块
第一章:Blazor 2026配置避坑大全导论Blazor 2026 引入了多项底层运行时增强与项目模板重构,但其默认配置在跨平台构建、AOT 预编译、HTTP/3 支持及 WASM 主机生命周期管理等场景中存在隐性兼容陷阱。开发者若沿用 Blazor 2024 或更早版本的经验直接升级&…...
Phi-mini-MoE-instruct效果实测:长文本摘要+关键信息抽取双任务
Phi-mini-MoE-instruct效果实测:长文本摘要关键信息抽取双任务 1. 模型概览 Phi-mini-MoE-instruct是一款轻量级混合专家(MoE)指令型小语言模型,在多项基准测试中展现出卓越性能: 代码能力:在RepoQA、Hu…...
Real-Anime-Z一文详解:LoRA轻量微调原理、融合逻辑与推理加速技巧
Real-Anime-Z一文详解:LoRA轻量微调原理、融合逻辑与推理加速技巧 1. 项目概述 Real-Anime-Z是一款基于Stable Diffusion技术的写实向动漫风格大模型,由Devilworld团队开发。它巧妙地在写实与纯动漫风格之间找到了平衡点,创造出独特的2.5D视…...
LAMMPS建模避坑指南:如何用EMC和SMILES字符串搞定复杂聚合物力场参数
LAMMPS建模避坑指南:如何用EMC和SMILES字符串搞定复杂聚合物力场参数 在分子动力学模拟领域,LAMMPS作为一款强大的开源工具,被广泛应用于各类复杂体系的建模与计算。然而,当涉及到聚合物、有机分子等复杂体系时,力场参…...
