当前位置: 首页 > news >正文

如何在Qt中使用zlib

前言

环境: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库了。


相关文章:

  • 如何在程序中解析获取word文档(docx格式)的文本内容
  • QFormLayout布局该什么时候使用
  • Qt判断文件类型 QMimeType
  • 在qmake中定义子项目的编译顺序(依赖关系)
  • lua面向对象-----继承的实现
  • 使用Qt实现阿里云API签名
  • 我的艰难生活
  • 在 Motorola 手机中,播放声音的注意点
  • 关于 Motorola E680 手机切出时如何关闭音乐的一些说明
  • 手机键盘键值表
  • 即将毕业的计算机专业学生,你要工作吗?
  • 如何正确的使用Timer的schedule()方法?
  • 一些小的经验积累
  • Struts入门经验
  • 学好英语的途径
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Android 控件背景颜色处理
  • ES6之路之模块详解
  • isset在php5.6-和php7.0+的一些差异
  • mysql中InnoDB引擎中页的概念
  • Python语法速览与机器学习开发环境搭建
  • Quartz初级教程
  • 分享一份非常强势的Android面试题
  • 检测对象或数组
  • 精彩代码 vue.js
  • 微信公众号开发小记——5.python微信红包
  • 我的面试准备过程--容器(更新中)
  • 小程序button引导用户授权
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (3)llvm ir转换过程
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)丶RabbitMQ的六大核心
  • (转) Face-Resources
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ... 是什么 ?... 有什么用处?
  • .bat文件调用java类的main方法
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net mvc部分视图
  • .NET MVC之AOP
  • .NET企业级应用架构设计系列之应用服务器
  • .NET值类型变量“活”在哪?
  • .sh
  • @Autowired 与@Resource的区别
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [Apio2012]dispatching 左偏树
  • [bzoj1912]异象石(set)
  • [DAX] MAX函数 | MAXX函数
  • [FxCop.设计规则]8. 也许参数类型应该是基类型
  • [hive] posexplode函数
  • [IE编程] 打开/关闭IE8的光标浏览模式(Caret Browsing)