C 工程下使用zlib壓縮演算法

2021-06-01 01:22:40 字數 1838 閱讀 9430

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資料夾下的...