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

钡铼技术BL205模块分布式IO集成应用风电场状态监测
在风力发电这一绿色能源领域,高效、精确的状态监测对于提升风电场运维效率、保障设备安全运行至关重要。随着工业4.0和数字化转型浪潮的推进,传统的监测方式已难以满足日益增长的数据处理与分析需求。钡铼技术BL205模块的出现,为风电场状态监…...
java博客目录
博客目录 基础知识 集合列表 List ArrayList: LinkedList: Set Map TreeMap 设计模式 单例模式: 工厂方法...

从零开始学习Linux(8)----自定义shell
shell从用户读入字符串“ls”,shell建立一个新的进程,然后在那个进程中运行ls程序并等待那个进程结束。然后shell读取新的一行输入,建立一个新的进程,在这个进程中运行程序,并等待这个进程结束。所以要写一个shell&…...

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

JDK介绍
JDK是Java Development Kit的缩写,是Oracle公司提供的用于开发Java应用程序的开发包。它包括了Java运行环境(Java Runtime Environment),以及一系列Java工具(如javac、java、jdb等)和Java基础类库ÿ…...

JavaScript 对象入门:基础用法全解析
目录 对象 语法 属性和访问 方法和调用 this关键字 null 遍历对象 内置对象 Math 属性 方法 Date 创建日期对象 获取和设置日期 ⭐对象 对象是 JavaScript 数据类型的一种,数据类型也包括数值类型、字符串类型、布尔类型、undefined。对象数据类型可…...
如何获得一个Oracle 23ai数据库(docker容器)
准确的说,是Oracle 23ai Free Developer版,因为企业版目前只在云上(OCI和Azure)和ECC上提供。 方法包括3种,本文介绍第3种: Virtual ApplianceRPM安装Docker 我已经有了一台Oracle Linux 8的虚机&#x…...

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

制药行业新突破:CANOpen转PROFINET网关配置案例解析
在药品制造工业环境中,实现CanOpen转Profinet协议之间转换的网关配置是一个关键过程,确保了不同通信协议的设备能够互相协作。以开疆智能CanOpen转Profinet网关为例,以下是其配置流程:首先安装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因其易用性、灵活性和强大的功能支持,成为了外贸企业首选的网站建设平台。 从技术和功能角度来看,WordPress提供了丰富的主题和插件,这些都是构建专业外贸网站所必需的。例如,有专门为外贸网站设计的主题和插件…...

差异基因散点图绘制教程
差异基因散点图绘制教程 本期教程 小杜的生信笔记,自2021年11月开始做的知识分享,主要内容是R语言绘图教程、转录组上游分析、转录组下游分析等内容。凡事在社群同学,可免费获得自2021年11月份至今全部教程,教程配备事例数据和相…...
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备份恢复(错的) 前提:从始至终开启AOF 介绍的Docker安装的Redis,不是Docker也一样,差不多 一、data目录差异 redis版本7 - /data/appendonlydir - appendonly.aof.manifest - appendo…...

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

【GPT4O 开启多模态新时代!】
系列文章目录 GPT-4o的出现,让 AI 真正进入了全能时代,而且 OpenAI 宣布所有人免费使用! 不论你是需要写文章、听声音还是看视频,GPT-4o都能满足你的需求 文章目录 系列文章目录什么是GPT-4o?一、GPT-40 的新功能二、…...
HTTP协议及Python实现
最近的项目需要频繁在前后端之间传输数据,本篇主要介绍HTTP协议以及数据传输方法。 1 HTTP协议 1.1 http协议简介 HTTP(Hypertext Transfer Protocol)是一种用于传输超文本数据的应用层协议。它是万维网上数据交换的基础,定义了客户端和服务器之间进行通…...
【机器学习】逻辑化讲清PCA主成分分析
碎碎念:小编去年数学建模比赛的时候真的理解不了主成分分析中的“主成分”的概念!!但是,时隔两年,在机器学习领域我又行了,终于搞明白了!且看正文!再分享一个今天听到的播客中非常触…...
Vue常见的指令
Vue.js 提供了许多内置指令,这些指令可以在模板中用于处理元素的显示、行为等。以下是 Vue.js 中常见的 7 个指令及其详细代码示例: 1、v-bind:用于属性绑定,可以动态更新 HTML 属性。 html<template> <div> <img…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...