$wget
$tar -xvzf zlib-1.2.3.tar.gz
$cd zlib-1.2.3.tar.gz
$./configure
$make
$sudo make install
安裝好之後,就可以用了
zlibmgr.h 檔案
#ifndef _zlibmgr
#define _zlibmgr
#define maxbuffersize 200000
#include #include #include #include using namespace std;
class czlibmgr
;czlibmgr::czlibmgr()
czlibmgr::~czlibmgr()
bool czlibmgr::compress(const char* pccontentbuf, char* pccompbuf, unsigned long& ulcomplen)
if (strlen(pccontentbuf) == 0)
memset(compr, 0, maxbuffersize);
ulong comprlen;
int err;
ulong len = strlen(pccontentbuf);
comprlen = sizeof(compr) / sizeof(compr[0]);
err = compress(compr, &comprlen, (const bytef*)pccontentbuf, len);
if (err != z_ok)
cout << "orignal size: " << len << " , compressed size : " << comprlen << endl;
memcpy(pccompbuf, compr, comprlen);
ulcomplen = comprlen;
return true;
}bool czlibmgr::uncompress(const char* pccompbuf, char* pcuncompbuf, unsigned long ulcomplen)
if (strlen(pccompbuf) == 0)
memset(uncompr, 0, maxbuffersize);
ulong uncomprlen = maxbuffersize;
int err;
err = uncompress(uncompr, &uncomprlen, (const bytef *)pccompbuf, ulcomplen);
if (err != z_ok)
cout << "compress size: " << ulcomplen << " uncompressed size : " << uncomprlen << endl;
memcpy(pcuncompbuf, uncompr, uncomprlen);
return true;
}czlibmgr g_kzlibmgr;
#endif
使用的例子
#include #include #include #include #include "zlibmgr.h"
using namespace std;
extern czlibmgr g_kzlibmgr;
int main()
採用如下方式進行編譯
g++ -o testzlib testzlib.cpp -lz
大家可以把zlibmgr 直接拿過去用,壓縮效果很好 通常都在一半以上
基於Zlib演算法的流壓縮 字串壓縮原始碼
基於zlib演算法的流壓縮 字串壓縮原始碼 zlib.net官方原始碼demo中提供了壓縮檔案的原始碼演算法。處於專案研發的需要,我需要對記憶體流進行壓縮,由於zlib.net並無相關文字幫助只能自己看原始碼解決。通過對sharpziplib的demo研究,寫出了zlib.net的流壓縮演算法。中間...
Zlib檔案壓縮和解壓
zlib檔案壓縮和解壓 開源 http www.zlib.net zlib使用手冊 http www.zlib.net manual.html zlib wince版 http www.tenik.co.jp adachi wince 在這裡,你可以檢視基於各種作業系統平台的壓縮與解縮 實現。以下是...
msgpack使用zlib壓縮資料
原創 注 靜態庫只需要編譯zlibstat,dll只需要編譯zlibvc 4.建立新的工程包含 msgpack.hpp 和 zlib.h 新增前面的生成的兩個lib 嘗試使用msgpack的壓縮類zbuffer,在msgpack.hpp檔案裡面新增 include msgpack zbuffer.h...