博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zlib__ZC
阅读量:4326 次
发布时间:2019-06-06

本文共 2467 字,大约阅读时间需要 8 分钟。

官网: ,所有版本下载:

 

ZC: 我下载的是 zlib-1.2.3.tar.gz 和 zlib-1.2.11.tar.gz(20170626当前最新版)

ZC: 我是看的一个网上的教程,具体文章不知道是哪个了...

ZC: zlib-1.2.3.tar.gz的编译方法是 进入目录“...\zlib-1.2.3\projects\visualc6”,用VC6打开 zlib.dsw,然后进行编译。最主要需要 这3个文件:zlib.h、zconf.h、zlib.lib 。

ZC: zlib-1.2.11.tar.gz的编译方法是看了“README”知道的...(方式一):进入目录“...\zlib-1.2.11\win32”用命令行编译 (方式二):进入目录“...\contrib\vstudio\...” 选择对应版本的VS目录 然后进行编译  (我没有实际使用 zlib-1.2.11.tar.gz 进行编译 和 编码...)

 

zlib-1.2.3.tar.gz 的 测试使用代码:

#include 
#include
#include "zlib.h"#pragma comment(lib,"zlib") void main(){ HANDLE pfile=::CreateFile("C:\\111.bmp",GENERIC_READ,0,NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS,NULL);//用这个函数比OpenFile好 if(pfile==INVALID_HANDLE_VALUE) { MessageBox(NULL,"打开文件失败","Error",MB_OK); CloseHandle(pfile);//一定注意在函数退出之前对句柄进行释放。 return; } DWORD filesize = GetFileSize(pfile,NULL); char* buffer = new char[filesize+1];//最后一位为'/0',C-Style字符串的结束符。 DWORD readsize = 0; ReadFile(pfile,buffer,filesize,&readsize,NULL); DWORD dwTick1 = ::GetTickCount(); //printf("filesize : %d, ::GetTickCount() : %d\n", filesize, dwTick1);//* //压缩 BYTE *dest = new BYTE[filesize]; unsigned long destSize = filesize; //Z_OK int iRtn = compress(dest, &destSize, (unsigned char*)buffer, filesize);//#define Z_BUF_ERROR (-5) printf("iRtn : %d\n", iRtn); printf("destSize : %d, ::GetTickCount() : %d\n", destSize, ::GetTickCount());//*///#define Z_NO_COMPRESSION 0//#define Z_BEST_SPEED 1//#define Z_BEST_COMPRESSION 9//#define Z_DEFAULT_COMPRESSION (-1)// ***//* // 解压 unsigned long nSize = 1024*40000; BYTE *target=new BYTE[nSize]; iRtn = uncompress(target, &nSize, dest, destSize); printf("iRtn : %d\n", iRtn); printf("nSize : %d, ::GetTickCount() : %d\n", nSize, ::GetTickCount());//*///* HANDLE pWfile=::CreateFile("C:\\z01.bmp",GENERIC_WRITE|GENERIC_READ,0,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);//用这个函数比OpenFile好 if(pWfile==INVALID_HANDLE_VALUE) { //MessageBox(NULL,"打开文件失败","Error",MB_OK); CloseHandle(pWfile);//一定注意在函数退出之前对句柄进行释放。 return; } DWORD writesize = 0; //::WriteFile(pWfile,buffer,filesize,&writesize,NULL); ::WriteFile(pWfile,target,nSize,&writesize,NULL); //善后工作 delete[]buffer;//注意是delete[]而不是delete CloseHandle(pWfile);//关闭句柄//*/}

 

 

Z

 

转载于:https://www.cnblogs.com/cppskill/p/7078998.html

你可能感兴趣的文章
C6748和音频ADC连接时候的TDM以及I2S格式问题
查看>>
UIView的layoutSubviews,initWithFrame,initWithCoder方法
查看>>
STM32+IAP方案 实现网络升级应用固件
查看>>
用74HC165读8个按键状态
查看>>
jpg转bmp(使用libjpeg)
查看>>
linear-gradient常用实现效果
查看>>
sql语言的一大类 DML 数据的操纵语言
查看>>
VMware黑屏解决方法
查看>>
JS中各种跳转解析
查看>>
JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
查看>>
Ecust OJ
查看>>
P3384 【模板】树链剖分
查看>>
Thrift源码分析(二)-- 协议和编解码
查看>>
考勤系统之计算工作小时数
查看>>
4.1 分解条件式
查看>>
Equivalent Strings
查看>>
flume handler
查看>>
收藏其他博客园主写的代码,学习加自用。先表示感谢!!!
查看>>
H5 表单标签
查看>>
su 与 su - 区别
查看>>