c++使用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 #include #endif /* _unistd_h */
5.正常編譯
6.將編譯後的zlib.lib,zconf.h,zlib.h三個檔案包含到專案中
7.可用測試**
write to file :
char * pchdata = "***..." ;
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 = "***...." ;
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);
msgpack使用zlib壓縮資料
原創 注 靜態庫只需要編譯zlibstat,dll只需要編譯zlibvc 4.建立新的工程包含 msgpack.hpp 和 zlib.h 新增前面的生成的兩個lib 嘗試使用msgpack的壓縮類zbuffer,在msgpack.hpp檔案裡面新增 include msgpack zbuffer.h...
Windows Mobile下使用ZLIB壓縮
前言 在當前手機應用中,可能壓縮技術不太引起重視,但是我們可以注意到一點,當手機與伺服器進行通訊的時候,速度與穩定性是非常重要,在這一環節中,我們如果把原檔案 或者原內容 直接傳送到伺服器,不僅耗費不少流量 在當前流量費不便宜的情況下,這種情況能避免就盡量避免 而且傳輸的速度慢,消耗的時間長,也有可...
zlib匯入到工程與資料壓縮
一 將zlib匯入到工程中 1.編譯zlib庫後,會生成乙個zlibdllrelease資料夾 release版本 和乙個zlibdlldebug資料夾 debug版本 使用zlib庫,共需4個檔案 zlib 1.2.8的根目錄下的zconf.h和zlib.h zlibdllrelease資料夾下的...