一.下载

​http://www.zlib.net/fossils/​​(网上找的各个版本都有)

二.编译

我下载的是zlib-1.2.11,进入目录zlib-1.2.11/contrib/vstudio/ 可以找到各个版本的解决方案文件,我用的是vc14
zlib下载编译_解决方案
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文件支持(动态加载)