zlib用法簡單說明

2021-08-16 21:37:02 字數 1475 閱讀 7195

**:

本文的目的是: 簡單說明如何把zlib加入到mfc程式中,提供記憶體壓縮功能.

1. 如何獲得zlib

zlib的主頁是:

2. 用vc++6.0開啟

3. 如何加入到我的工程

編譯好 zlib.lib 後, 你就得到了呼叫乙個靜態庫所需要的所有檔案了(zlib.lib, zlib.h, zconf.h). 如何呼叫靜態庫不用我說了吧.

4. 用zlib能幹什麼

先來看看 zlib 都提供了那些函式, 都在zlib.h中,看到一堆巨集不要暈,其實都是為了相容各種編譯器和一些型別定義.死死抓住那些主要的函式的原型宣告就不會受到這些東西的影響了.

關鍵的函式有那麼幾個:

(1)int compress (bytef *dest,   ulongf *destlen, const bytef *source, ulong sourcelen);

把源緩衝壓縮成目的緩衝, 就那麼簡單, 乙個函式搞定

(2) int compress2 (bytef *dest,   ulongf *destlen,const bytef *source, ulong sourcelen,int level);

功能和上乙個函式一樣,都乙個引數可以指定壓縮質量和壓縮數度之間的關係(0-9)不敢肯定這個引數的話不用太在意它,明白乙個道理就好了: 要想得到高的壓縮比就要多花時間

(3) ulong compressbound (ulong sourcelen);

計算需要的緩衝區長度. 假設你在壓縮之前就想知道你的產度為 sourcelen 的資料壓縮後有多大, 可呼叫這個函式計算一下,這個函式並不能得到精確的結果,但是它可以保證實際輸出長度肯定小於它計算出來的長度

(4) int uncompress (bytef *dest,   ulongf *destlen,const bytef *source, ulong sourcelen);

解壓縮(看名字就知道了:)

(5) deflateinit() + deflate() + deflateend()

3個函式結合使用完成壓縮功能,具體用法看 example.c 的 test_deflate()函式. 其實 compress() 函式內部就是用這3個函式實現的(工程 zlib 的 compress.c 檔案)

(6) inflateinit() + inflate() + inflateend()

和(5)類似,完成解壓縮功能.

(7) gz開頭的函式. 用來操作*.gz的檔案,和檔案stdio呼叫方式類似. 想知道怎麼用的話看example.c 的 test_gzio() 函式,很easy.

(8) 其他諸如獲得版本等函式就不說了.

總結: 其實只要有了compress() 和uncompress() 兩個函式,在大多數應用中就足夠了.

題外話: 我最初看到zlib的源**時被好多巨集嚇倒了,呵呵,後來仔細看下去才發現原來介面那麼簡單. 至於那些英文說明也沒想象中的那麼難懂.只要有嘗試的勇氣,總能有些收穫.

zlib用法簡單說明

zlib用法簡單說明 收藏 本文的目的是 簡單說明如何把zlib加入到mfc程式中,提供記憶體壓縮功能.1.如何獲得zlib zlib的主頁是 http www.zlib.net 2.用vc 6.0開啟 3.如何加入到我的工程 編譯好 zlib.lib 後,你就得到了呼叫乙個靜態庫所需要的所有檔案了...

zlib用法簡單說明

本文的目的是 簡單說明如何把zlib加入到mfc程式中,提供記憶體壓縮功能.1.如何獲得zlib zlib的主頁是 http www.zlib.net 2.用vc 6.0開啟 3.如何加入到我的工程 編譯好 zlib.lib 後,你就得到了呼叫乙個靜態庫所需要的所有檔案了 zlib.lib,zlib...

zlib用法簡單說明

本文的目的是 簡單說明如何把zlib加入到mfc程式中,提供記憶體壓縮功能.1.如何獲得zlib zlib的主頁是 2.用vc 6.0開啟 3.如何加入到我的工程 編譯好 zlib.lib 後,你就得到了呼叫乙個靜態庫所需要的所有檔案了 zlib.lib,zlib.h,zconf.h 如何呼叫靜態庫...