一.下載
http://www.zlib.net/fossils/(網上找的各個版本都有)
二.編譯
我下載的是zlib-1.2.11,進入目錄zlib-1.2.11/contrib/vstudio/ 可以找到各個版本的解決方案文件,我用的是vc14zlib-1.2.11/contrib/vstudio/vc14/zlibvc.sln,打開
解決方案中包含6個工程。其中:
(1). zlibvc生成動態鏈接庫zlibwapi.dll和對應的導入庫zlibwapi.lib
(2). zlibstat生成靜態鏈接庫zlibstat.lib
(3). testzlibdll測試生成的動態鏈接庫zlibwapi.dll
(4). testzlib測試生成的靜態鏈接庫zlibstat.lib
爲了兼容舊版本可以在解決方案中將zlibwapi.dl和zlibstat.dll改爲zlibdll
三.使用zlib靜態庫:zlibstat.lib
1. 包含頭文件
屬性--C/C++--常規--附加包含目錄(添加包含.h文件的目錄)
2. 定義宏
屬性--C/C++--預處理器--預處理器定義:添加 ZLIB_WINAPI ASMV ASMINF
3. 項目包含.lib文件所在的目錄:
屬性--鏈接器--常規--附加庫目錄
4. 項目包含.lib文件
屬性--鏈接器--輸入--附加依賴項(libstat.lib)
5. 項目代碼中 zlib.h和zlibconf.h
編譯生成.exe即可使用。
四.使用動態庫 zlibwapi.lib(zlibwapi.dll)
1. 包含頭文件
屬性--C/C++--常規--附加包含目錄(添加包含.h的目錄)(zlib.h和zlibconf.h)
2. 定義宏
屬性--C/C++--預處理器--預處理器定義:添加 ZLIB_WINAPI(缺少編譯會報錯,無法解析的外部符號 _compress,該符號在函數 ,這個宏定義在zlib是必要的)
3. 項目包含.lib文件所在的目錄:
屬性--鏈接器--常規--附加庫目錄
4. 項目包含.lib文件
屬性--鏈接器--輸入--附加依賴項(zlibwapi.lib)(zlib.lib我輸出的文件名)
5. 項目代碼中 #include "zlib.h"
編譯生成.exe文件需要.dll文件支持(動態加載)