如何在Qt中使用zlib

2023-05-16

前言

环境:qt5.9.9 、 zlib1.2.1、 windows10、QtCreator4.11.0
本文介绍了在Qt中使用zlib的方式。使用的场景是在上位机软件中使用解压缩功能。
点击此处下载本文完整的示例代码。


问题

比较麻烦的事情在于,截至目前最新的zlib支持到使用vs2015进行编译,而已有的上位机软件是使用minGW编译的,使用vs编译的dll库没办法在minGW中使用。现在摆在面前有两条路,一种是把上位机软件使用msvc重新编译,然后再使用vs2015编译的zlib库。另一种使用minGW编译zlib,然后再供上位机软件调用。两种方式理论上行得通,但是实践起来可能会出现各种问题,甚至行不通。
这时候通过看博客发现qt中居然自带了zlib库,于是我搜索了一下,发现在minGW下确实有zlib的头文件,在qt帮助文档中也发现了关于zlib的描述。在这里插入图片描述
在这里插入图片描述
于是我新建了一个工程将在pro文件中增加LIBS+=lz,然后包含zlib.h,居然真的好用。需要注意的是我的zlib是在minGW下的,使用msvc构建是不行的。同时还必须包含qt的core模块。不过打开了zlib.h文件我才发现这里边都是些最基础的操作接口,看的一脸懵,根本不知道从何下手。这时候我突然想到了zlib源代码下的例程。

解决问题

我需要用到的是解压缩的操作,于是在源代码中找到了解压缩的高级点的API接口以及例程,把其源文件加到我新建的项目中,然后编译,结果成功了。
在这里插入图片描述

运行结果

使用了一个名为“modbus配置说明.zip”的压缩文件进行测试,输出其内部的所有文件信息。
在这里插入图片描述
至此可以在qt中使用zlib库了。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Qt中使用zlib 的相关文章

随机推荐

  • 【毕业设计系列】基于概率神经网络的西瓜成熟度检测系统【含Matlab源码】

    Date 2023 5 7 文章目录 前言 1 代码获取方式 2 实现效果 3 部分源代码 前言 在之前毕业设计的时候 基于概率神经网络的西瓜成熟度检测系统 采用Matlab语言实现 效果很好 1 代码获取方式 方式一 订阅付费专栏 毕业设
  • 【Linux系列】Linux解决端口被占用的问题 bind: address already in use

    Date 2023 5 9 文章目录 问题描述解决方案 问题描述 bind address already in use 解决方案 首先用netstat nap grep 5212查看5212端口对应的进程 xff08 这里是知道端口的情况
  • Error C2065 'cout': undeclared identifier

    1 问题背景 C 43 43 MFC中出现 Error C2065错误 xff0c 即未定义xxx错误 xff0c 而你使用的xxx是基础类库的 xff0c 你心里想不可能不存在呀 当然排除你拼写错误的情况 xff0c 咱不讨论这种情况 2
  • Floyd-Warshall【最短路(多源)】

    本来以为那个SPAF也是一个最短路算法 xff0c 原来是Bell 什么算法的中国别名 xff0c 三大最短路 xff0c 凑齐了 xff0c 感觉看了好久了 xff0c 参考资料 xff1a 啊哈算法 信息学奥赛一本通 处理问题 xff1
  • openCV学习笔记(5):使用sprintf函数实现在窗口连续显示同一文件夹下的图片

    一 环境 xff1a vs2010 43 opencv2 3 1 二 程序 xff1a include lt iostream gt include lt opencv2 highgui highgui hpp gt include lt
  • Java虚拟机:JVM 主要组成部分与内存区域

    一 JVM 主要组成部分 xff1a JVM的主要包含两个组件和两个子系统 xff0c 分别为 xff1a xff08 1 xff09 Native Interface 本地库接口 xff1a 与native lib 本地方法库 交互 xf
  • ubuntu22.04安装vmware tools

    前言 安装VMware Tools经常会出现兼容性不好 xff0c 系统之间复制文件失灵 xff0c 并且安装时提示建议使用open vm tools xff0c 于是放弃vmware tools的安装 xff0c 尝试使用open vm
  • ubuntu22.04安装ibus中文输入法

    前言 IBus xff08 英文全称为Intelligent Input Bus xff09 xff0c 是GNU Linux和类UNIX操作系统下的以GPL协议分发源代码的开源免费多语言输入法框架 首先 在安装中文输入法之前 xff0c
  • 信息安全之数字信封原理

    概述 一般来说对称加密算法的密钥短 xff0c 加密算法简单 xff0c 适用于大量数据加密的场合 xff0c 在现在的技术条件下比较容易破解 xff1b 相比较而言非对称加密的密钥长 xff0c 加解密算法复杂 xff0c 很难破解 xf
  • 信息安全之信息摘要技术

    什么是信息摘要 xff1f 指一段数据的特征信息 xff0c 当数据发生了改变 xff0c 信息摘要也会发生改变 信息摘要是由哈希函数生成的 主要为了保证数据的完整性 xff0c 保证接收到的数据不被篡改 常见的摘要计算方法有MD5 128
  • 信息安全技术之数字签名

    什么是数字签名 xff1f 就类似于生活中公司发布一些文件 放假通知啥的 xff0c 老板会在文件的后面签名或者会盖上公司的印章 xff0c 目的就是标识这个文件是公司发布的 在计算机中我们没办法像真实世界那样签名 xff0c 这时候我们就
  • 设置Mysql C API断线自动重连

    Mysql的C API自带重连功能 xff0c 执行语句时发现连接断开 xff0c mysql库会尝试重连 xff0c 并重新执行语句 使用mysql options函数设置MYSQL OPT RECONNECT选项可以开启自动重连功能 默
  • mysql_query()和myql_real_query()的区别

    函数原型 span class token keyword int span span class token function mysql query span span class token punctuation span MYSQ
  • mysql_store_result和mysql_use_result的区别

    mysql store result 本次查询的所有结果都缓存到客户端 xff0c 这样做的好处是可以随意的访问结果中的值 xff0c 例如可以使用mysql data seek 和mysql row seek 访问任意位置的数据或者行 同
  • linux下实时跟踪文件变化tail指令

    很多时候我们程序进入后台之后 xff0c 日志信息会写入到文件中 此时如果用一般的文件操作指令 例如cat xff0c 手动的一次一次的查看 tail命令在这个时候就非常有用 span class token comment 使用 f参数指
  • 【教程】老主板可以用上Nvme协议的固态硬盘?当然可以!!!!(注意:只适用于支持UEFI BIOS的主板)

    如今固态硬盘分为SATA协议和Nvme协议的 xff0c 虽然SATA协议的固态硬盘已经可以满足大多数用户的需求 xff0c 但是和Nvme协议的固态硬盘比起来差别还是很大的 xff0c SATA协议的固态硬盘最多500 600MB s的传
  • 解决windeployqt打包QML程序无法启动的问题

    windeployqt exe是qt自带的打包工具 xff0c 在打包qml程序时需要带上 qmldir参数 xff0c 指定qml导入符号的路径 xff0c 否则会出现无法启动的问题 windeployqt xxx exe qmldir
  • windows下如何找到占用文件或文件夹的程序

    我们在操作一个文件或文件夹时 xff0c 经常会遇到被占用的问题 xff0c 如下图 绝大部分情况下我们知道是那些程序占用 xff0c 可以直接关闭他 xff0c 但是也有很多时候我们不知道是哪个程序占用的 xff0c 可以用下面的方式来解
  • 正则表达式的零宽断言

    概念 断言 xff1a 就是说正则可以指明在指定的内容的前面或后面会出现满足指定规则的内容 零宽 xff1a 代表断言是一个占位符 xff0c 并不会在查找结果中输出 实例 使用的测试原文如下 xff1a lt w t gt 测试1 lt
  • 如何在Qt中使用zlib

    前言 环境 xff1a qt5 9 9 zlib1 2 1 windows10 QtCreator4 11 0 本文介绍了在Qt中使用zlib的方式 使用的场景是在上位机软件中使用解压缩功能 点击此处下载本文完整的示例代码 问题 比较麻烦的