安全小站

我们认为不需要懂得信息安全的人是幸福的人,而我们的责任是保障他们的幸福。...

C++工程下使用zlib压缩算法

C++使用zlib压缩算法。
1.下载zlib并解压缩
2.双击/src/zlib/1.2.3/zlib-1.2.3/projects/visualc6/zlib.dsw用VS打开
3.用LIB Release对zlib工程进行编译(如需要改变编译选项,则需要与要包含此lib的工程的编译选项一致)
4.编译时有可能报错,建立文件解决问题
"'unistd.h': No such file or directory"
因为Linux下开发的C程序都需要头文件unistd.h,但VC中没有个头文件,
所以用VC编译总是报错。把下面的内容保存为unistd.h,可以解决这个问题。
/** This file is part of the Mingw32 package.
* unistd.h maps     (roughly) to io.h
*/


#ifndef _UNISTD_H
#define _UNISTD_H


#include <io.h>
#include <process.h>


#endif /* _UNISTD_H */


5.正常编译
6.将编译后的zlib.lib,zconf.h,zlib.h三个文件包含到项目中

7.可用测试代码

Write to file :
		char * pchData = "xxx..." ;      
		gzFile fData = gzopen(pchFile,"wb");      
		gzwrite(fData,pchData,strlen(pchData));      
		gzclose(fData);  


 
 
read from file :
		char pchData[1024];      
		gzFile fData = gzopen(pchFile,"rb");      
		int n = gzread(fData,pchData,1024);      
		gzclose(fData);  


 
 
Buffer test :
		//原始数据      
		unsigned char pchSrc[] = "xxx...." ;      
		unsigned long nSrcLen = sizeof(pchSrc);      
		//压缩之后的数据      
		unsigned char achComp[1024];      
		unsigned long nCompLen = 1024 ;      
		//解压缩之后的数据      
		unsigned char achUncomp[1024];      
		unsigned long nUncompLen = 1024 ;      
		//压缩      
		compress(achComp,&nCompLen, pchSrc,nSrcLen);      
		//解压缩      
		uncompress(achUncomp,&nUncompLen, achComp,nCompLen);      
		//显示原始数据信息      
		printf("原始数据(%d):/n%s/n/n", nSrcLen,pchSrc);      
		//显示压缩之后的数据      
		printf("压缩数据(%d):/n%s/n/n", nCompLen,achComp);      
		//显示解压缩之后的数据      
		printf("解压数据(%d):/n%s/n/n", nUncompLen,achUncomp);  


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭