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

QT外部库:zlib

前言

 新建项目:pro文件中新增代码

LIBS+= -lz

在main.cpp函数中#include "zlib.h",如果此时运行代码提示没有找到对应的函数,那么就qt安装目录:D:\C++\qt5.12.7\Tools\mingw730_64\x86_64-w64-mingw32\include(这里是博主的路径,作为参考找自己的路径)下查看是否有zlib.h头文件,复制这个文件到当前目录下即可运行

数据流压缩解压缩


#include "zlib.h"
#include <zlib.h>int main(int argc,char * argv[])
{
//    QApplication a(argc, argv);char text[] = "zlib compress and uncompress test\nturingo@163.com\n2012-11-05\n";uLong tlen = strlen(text) + 1;	/* 需要把字符串的结束符'\0'也一并处理 */char* buf = NULL;uLong blen;cout <<"start: tlen = "<< tlen << endl;/* 计算缓冲区大小,并为其分配内存 */blen = compressBound(tlen);	/* 压缩后的长度是不会超过blen的 */if((buf = (char*)malloc(sizeof(char) * blen)) == NULL){printf("no enough memory!\n");return -1;}cout << "compressBound: blen =  " << blen<< endl;
//        /* 压缩 */if(compress((Bytef*)buf, &blen,(Bytef*) text, tlen) != Z_OK){printf("compress failed!\n");return -1;}cout <<"compress \n";cout << strlen(buf)+1 << endl;cout <<"uncompress \n";/* 解压缩 */if(uncompress((Bytef*)text, &tlen, (Bytef*)buf, blen) != Z_OK){printf("uncompress failed!\n");return -1;}/* 打印结果,并释放内存 */printf("%s", text);if(buf != NULL){free(buf);buf = NULL;}//    return a.exec();return 0;
}
   char text[] = "zlib testddsa ";uLong tlen = strlen(text) + 1;	/* 需要把字符串的结束符'\0'也一并处理 */char* buf = NULL;uLong blen;cout <<"start: tlen = "<< tlen << endl;/* 计算缓冲区大小,并为其分配内存 */blen = compressBound(tlen);	/* 压缩后的长度是不会超过blen的 */if((buf = (char*)malloc(sizeof(char) * blen)) == NULL){printf("no enough memory!\n");return -1;}cout << "blen = " << blen<< endl;compress((Bytef*)buf,&blen,(Bytef*)text,tlen);cout << "blen = "<< blen<< endl;cout << "strlen(buf) = " << strlen(buf)<< endl;uLong ubound = compressBound(strlen(buf)+1 );/* 压缩后的长度是不会超过blen的 */cout << "bound =" << ubound<< endl;uncompress((Bytef*)text,&ubound,(Bytef*)buf,blen);cout << "unbound =" << ubound<< endl;

文件压缩解压缩

        uLong blen,tlen;char text[1024];char* dest;FILE* f,ff;
//        f = fopen("test.txt","r+");//        fread(text,1,1024,f);
//        tlen = strlen(text)+1;
//        cout << text << endl;
//        cout << "tlen = "<< tlen  << endl;//        blen = compressBound(tlen);
//        cout << "blen = "<< blen  << endl;//        dest = (char *)malloc(blen );
//        compress((Bytef*)dest,&blen,(Bytef*)text,tlen);//        cout << "blen = "<< blen  << endl;
//        ff = fopen("test.aaa","w");
//        fwrite(dest,blen,1,ff);
//        fclose(ff);
//        fclose(f);f= fopen("test.aaa","r+");fread(dest,1024,1,f);fclose(f);
//            cout << dest << endl;blen = compressBound(strlen(dest)+1);uncompress((Bytef*)text,&blen,(Bytef*)dest,1024);cout << text << endl;

相关文章:

QT外部库:zlib

前言 新建项目&#xff1a;pro文件中新增代码 LIBS -lz 在main.cpp函数中#include "zlib.h",如果此时运行代码提示没有找到对应的函数&#xff0c;那么就qt安装目录&#xff1a;D:\C\qt5.12.7\Tools\mingw730_64\x86_64-w64-mingw32\include&#xff08;这里是博主…...

钡铼技术BL205模块分布式IO集成应用风电场状态监测

在风力发电这一绿色能源领域&#xff0c;高效、精确的状态监测对于提升风电场运维效率、保障设备安全运行至关重要。随着工业4.0和数字化转型浪潮的推进&#xff0c;传统的监测方式已难以满足日益增长的数据处理与分析需求。钡铼技术BL205模块的出现&#xff0c;为风电场状态监…...

java博客目录

博客目录 基础知识 集合列表 List ArrayList&#xff1a; LinkedList&#xff1a; Set Map TreeMap 设计模式 单例模式&#xff1a; 工厂方法...

从零开始学习Linux(8)----自定义shell

shell从用户读入字符串“ls”&#xff0c;shell建立一个新的进程&#xff0c;然后在那个进程中运行ls程序并等待那个进程结束。然后shell读取新的一行输入&#xff0c;建立一个新的进程&#xff0c;在这个进程中运行程序&#xff0c;并等待这个进程结束。所以要写一个shell&…...

《大数据分析-数据仓库项目实战》学习笔记

目录 基本概念 数据仓库 数据仓库整体技术架构 数据仓库主题 数据集市 数据仓库的血缘关系 数据仓库元数据管理 数据仓库的指标 数据仓库维度概念 HDFS Flume Hadoop Kafka 数据仓库分层模型 Superset 即席查询 Sqoop Atlas元数据管理 项目需求描述 系统目标…...

JDK介绍

JDK是Java Development Kit的缩写&#xff0c;是Oracle公司提供的用于开发Java应用程序的开发包。它包括了Java运行环境&#xff08;Java Runtime Environment&#xff09;&#xff0c;以及一系列Java工具&#xff08;如javac、java、jdb等&#xff09;和Java基础类库&#xff…...

JavaScript 对象入门:基础用法全解析

目录 对象 语法 属性和访问 方法和调用 this关键字 null 遍历对象 内置对象 Math 属性 方法 Date 创建日期对象 获取和设置日期 ⭐对象 对象是 JavaScript 数据类型的一种&#xff0c;数据类型也包括数值类型、字符串类型、布尔类型、undefined。对象数据类型可…...

如何获得一个Oracle 23ai数据库(docker容器)

准确的说&#xff0c;是Oracle 23ai Free Developer版&#xff0c;因为企业版目前只在云上&#xff08;OCI和Azure&#xff09;和ECC上提供。 方法包括3种&#xff0c;本文介绍第3种&#xff1a; Virtual ApplianceRPM安装Docker 我已经有了一台Oracle Linux 8的虚机&#x…...

想跨境出海?云手机提供了一种可能性

全球化时代&#xff0c;越来越多的中国电商开始将目光投向了海外市场。这并不是偶然&#xff0c;而是他们在长期的市场运营中&#xff0c;看到了出海的必要性和潜在的机会。 中国的电商市场无疑是全球最大也最发达的之一。然而&#xff0c;随着市场的不断发展和竞争的日益加剧…...

制药行业新突破:CANOpen转PROFINET网关配置案例解析

在药品制造工业环境中&#xff0c;实现CanOpen转Profinet协议之间转换的网关配置是一个关键过程&#xff0c;确保了不同通信协议的设备能够互相协作。以开疆智能CanOpen转Profinet网关为例&#xff0c;以下是其配置流程&#xff1a;首先安装CanOpen转Profinet网关的配置软件&am…...

vue前端时间段选择控件

实现效果: 可选具体的某天的某时某分某秒 vue前端代码: <el-form-item label"日期"><el-date-pickerv-model"daterangerq"style"width: 240px"value-format"yyyy-MM-dd HH:mm:ss"type"datetimerange"range-separat…...

用wordpress建外贸独立站的是主流的外贸建站方式

WordPress因其易用性、灵活性和强大的功能支持&#xff0c;成为了外贸企业首选的网站建设平台。 从技术和功能角度来看&#xff0c;WordPress提供了丰富的主题和插件&#xff0c;这些都是构建专业外贸网站所必需的。例如&#xff0c;有专门为外贸网站设计的主题和插件&#xf…...

差异基因散点图绘制教程

差异基因散点图绘制教程 本期教程 小杜的生信笔记&#xff0c;自2021年11月开始做的知识分享&#xff0c;主要内容是R语言绘图教程、转录组上游分析、转录组下游分析等内容。凡事在社群同学&#xff0c;可免费获得自2021年11月份至今全部教程&#xff0c;教程配备事例数据和相…...

Windows安装多版本MySQL

5.7 - 配置 my.ini [client] port 3307[mysql] default-character-set utf8mb4[mysqld] port 3307 server_id 1 character-set-server utf8mb4basedir "E://MySQL/mysql5.7" datadir "E://MySQL/mysql5.7/data"# 将所有表名转换为小写字母 lower_c…...

Redis7降级到Redis6如何AOF备份恢复(错的)

Redis7降级到Redis6如何AOF备份恢复&#xff08;错的&#xff09; 前提&#xff1a;从始至终开启AOF 介绍的Docker安装的Redis&#xff0c;不是Docker也一样&#xff0c;差不多 一、data目录差异 redis版本7 - /data/appendonlydir - appendonly.aof.manifest - appendo…...

通过EXCEL控制PLC启停电机的一种方法

概述 本例将介绍用微软EXCEL电子表格控制西门子S7-1200 PLC实现电机启停的一种方法。 第1步&#xff1a; 添加PLC设备&#xff0c;选择西门子S7-1214C CPU&#xff0c;设置IP地址&#xff1a;192.168.18.18&#xff0c;子网掩码&#xff1a;255.255.255.0。 第2步&#xff1a…...

【GPT4O 开启多模态新时代!】

系列文章目录 GPT-4o的出现&#xff0c;让 AI 真正进入了全能时代&#xff0c;而且 OpenAI 宣布所有人免费使用&#xff01; 不论你是需要写文章、听声音还是看视频&#xff0c;GPT-4o都能满足你的需求 文章目录 系列文章目录什么是GPT-4o&#xff1f;一、GPT-40 的新功能二、…...

HTTP协议及Python实现

最近的项目需要频繁在前后端之间传输数据&#xff0c;本篇主要介绍HTTP协议以及数据传输方法。 1 HTTP协议 1.1 http协议简介 HTTP(Hypertext Transfer Protocol)是一种用于传输超文本数据的应用层协议。它是万维网上数据交换的基础&#xff0c;定义了客户端和服务器之间进行通…...

【机器学习】逻辑化讲清PCA主成分分析

碎碎念&#xff1a;小编去年数学建模比赛的时候真的理解不了主成分分析中的“主成分”的概念&#xff01;&#xff01;但是&#xff0c;时隔两年&#xff0c;在机器学习领域我又行了&#xff0c;终于搞明白了&#xff01;且看正文&#xff01;再分享一个今天听到的播客中非常触…...

Vue常见的指令

Vue.js 提供了许多内置指令&#xff0c;这些指令可以在模板中用于处理元素的显示、行为等。以下是 Vue.js 中常见的 7 个指令及其详细代码示例&#xff1a; 1、v-bind&#xff1a;用于属性绑定&#xff0c;可以动态更新 HTML 属性。 html<template> <div> <img…...

解决Flutter RefreshIndicator在单一列表项下的显示问题

在开发Flutter应用时,RefreshIndicator是一个非常有用的控件,它可以为列表视图提供下拉刷新的功能。然而,当列表中只有一个项目时,RefreshIndicator可能会遇到一个常见的问题:它不会显示。这篇博客将详细探讨这个问题的解决方案,并提供一个具体的实例。 问题描述 假设我…...

FreeRADIUS配置踩坑记:当LDAP用户遇上Google Authenticator,如何解决PAM模块的那些‘坑’?

FreeRADIUS与LDAP集成Google Authenticator的实战避坑指南 当企业安全团队决定为远程访问系统部署双因素认证时&#xff0c;FreeRADIUS与LDAP集成Google Authenticator的方案常被列为优选。但真正实施时&#xff0c;技术细节中的"魔鬼"往往让工程师们夜不能寐。本文将…...

开源模组加载器SMAPI全攻略:从新手配置到冲突解决的进阶指南

开源模组加载器SMAPI全攻略&#xff1a;从新手配置到冲突解决的进阶指南 【免费下载链接】SMAPI The modding API for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/smap/SMAPI 如何通过SMAPI实现安全模组管理&#xff1f;三大核心优势解析 非侵入式架构…...

UART 入门指南(Linux新手版)

UART 入门指南&#xff08;Linux新手版&#xff09; 适用对象&#xff1a;嵌入式/电子/通信初学者 目录 什么是 UARTUART 工作原理硬件接口与接线通信参数详解编程示例常见问题与调试 1. 什么是UART 1.1 基本定义 UART 的全称是 Universal Asynchronous Receiver/Transmitte…...

STM32F103ZET6【HAL库实战】STM32CubeMX配置高级定时器实现三相电机驱动PWM

1. 为什么需要带死区的互补PWM 在驱动三相无刷电机时&#xff0c;最头疼的问题就是上下桥臂直通。想象一下&#xff0c;如果同一个桥臂的上下两个MOS管同时导通&#xff0c;电源正负极就直接短路了&#xff0c;轻则烧MOS管&#xff0c;重则整个电路板冒烟。我当年第一次调电机驱…...

AI赋能前端开发:让快马平台智能生成仪表盘页面架构与代码

最近在做一个数据可视化项目时&#xff0c;遇到了一个典型的前端开发需求&#xff1a;需要快速搭建一个专业级的仪表盘页面。这个页面需要包含数据概览卡片、图表展示区和用户留言列表三大核心模块。作为一个独立开发者&#xff0c;既要考虑UI美观度&#xff0c;又要兼顾代码质…...

SSN在LiDAR目标检测环境配置、SSN在LiDAR目标检测模型代跑训练、SSN在LiDAR目标检测模型改进创新SSN在LiDAR目标检测环境配置:Windows、Ubuntu、Centos、

SSN在LiDAR目标检测环境配置、 SSN在LiDAR目标检测模型代跑训练、 SSN在LiDAR目标检测模型改进创新 SSN在LiDAR目标检测环境配置&#xff1a;Windows、Ubuntu、Centos、Macos等系统环境&#xff0c;如果电脑拥有显卡&#xff0c;可配置GPU版本的SSN在LiDAR环境。 SSN在LiDAR目标…...

谷歌开源Gemma 4:256K原生多模态,免费商用

谷歌刚刚发布了新一代开源大模型Gemma 4&#xff0c;直接把Gemini 3的核心技术下放了。2026年4月2日&#xff0c;谷歌如约献上复活节惊喜&#xff1a;Gemma 4 正式开源。从手机到服务器全覆盖四种规格&#xff0c;首次加入MoE架构&#xff0c;原生支持文本图像音频三模态&#…...

什么是共轭表达式?解决了什么问题?

什么是共轭表达式&#xff1f;解决了什么问题&#xff1f;为什么导数是 1/x&#xff1f; 导数衡量的是“每增加 1 单位的 xxx&#xff0c;y 能增加多少”...

使用PHP函数进行网站性能监控和优化的代码示例

在构建一个高效、稳定的网站时&#xff0c;性能监控和优化是非常重要的一环。在 PHP 中&#xff0c;有许多内置函数和工具可以帮助我们实现网站的性能监控和优化。本文将介绍几种常用的 PHP 函数&#xff0c;并提供相应的代码示例&#xff0c;来帮助您更好地进行网站性能监控和…...