在您的代碼中使用zlib非常簡單,文檔(或我發現的stackoverflow上的各種答案)並不明顯。
以下技術適用於任何編譯器和IDE。我使用代碼:blocks在windows mingw中測試它,這就是爲什麼我將它作爲這個問題的答案發布的原因。
從http://www.zlib.net/
下載zlib的源代碼複製所有的.c和.h文件從zlib源代碼的根文件夾中的文件夾中的編譯器搜索路徑。
將zlib源文件添加到IDE項目中。
添加#include「zlib。H」到你的源代碼
呼叫壓縮或解壓縮
就是這樣。這簡直是簡單的。
所有你必須要小心的是內存管理,因爲這爲c 。代碼
爲了讓事情我自己簡單的,我已經把一個C++封裝程序,歡迎您的使用,像這樣:
/** ZLIB C++ wrapper
Usage:
<pre>
#include "cZLIB.h"
{
// compress data in bigbuffer
raven::set::cZLIB ZLIB;
ZLIB.Compress(bigbuffer, sizebigbuffer);
// use compressed buffer, before ZLIB goes out of scope
use(ZLIB.Buffer(), ZLIB.Length());
}
...
{
// decompress data in smallbuffer
raven::set::cZLIB ZLIB;
ZLIB.Inflate(smallbuffer, sizesmallbuffer)
// use decompressed data, before ZLIB goes out of scope
use(ZLIB.Buffer(), ZLIB.Length());
}
</pre>
Build:
Download this code (cZLIB.h and cZLIB.cpp) from
https://github.com/JamesBremner/raven-set
and install somewhere in your compiler search path.
Let's assume you install it in folder .../src.
Download the zlib source code from http://www.zlib.net/
Copy all the .c and .h files from the root folder of the zlib source
to a new folder .../src/zlib
Add the files cZLIB.h, cZLIB.cpp and all the files in .../src/zlib
to the IDE project.
Build.
*/
class cZLIB
...
出於某種原因,我發現mingw有一個zlib庫和libz庫。當我使用libz時,一切正常。我真的不知道有什麼區別,或者爲什麼這個名字倒退,哦,井。該手冊說輸出緩衝區只需比輸入多12個字節,因爲這是最壞情況下的壓縮(10個字節的標題和2個字節說沒有壓縮?)。它現在適用於libz而不是zlib。事實上,我認爲zlib庫文件是一些文件,這些文件在一段時間之前由於配置錯誤而意外安裝。 (p。要MODS:答案你自己的問題按鈕不適合我?!) – myforwik 2010-11-12 09:41:36
@myforwik:libz是zlib。 – 2010-11-12 09:59:54