1.打开VS2013,为了测试的便捷,我们新建Win32控制台程序,且项目名称为zlibTest;
2.为了项目的直观,选中如图三个文件,右键移除,点击删除。你可以不必这么做,只是测试;
3.将已编译生成的zlib1.2.11静态库zlibstat.lib与头文件zconf.h / zlib.h(zlib1.2.11静态编译),一起放入新建的文件夹CommonFiles,移动到与工程同级目录(你可以放置到喜欢的地方);
4.VS2013解决方案,选择工程名zlibTest,右键属性,我们修改输出目录与工作目录为..\..\bin\(勿忘记最后的\),方便调试与直接运行EXE(你可以按照自身的习惯修改);
5.VS2013解决方案,头文件右键,选择现有项。将CommonFiles里面的头文件zconf.h / zlib.h加入工程,且在调用zlib函数的.cpp或者.h文件,使用C调用约定#include包含zlib.h文件(zconf.h不用包含);
6.VS2013解决方案,右键属性,链接器,附加依赖项,编辑加入..\..\bin\CommonFiles\zlibstat.lib;
6.1亦可以使用#pragma comment(lib, "..\\..\\CommonFiles\\zlibstat.lib"),你选择喜欢的方法;
7.至此,我们使用zlib1.2.11静态库的环境已经搭好了,过程可以简略很多,仅为了方便初学者。让我们一起调用zlib官方的例子试试吧!
8.好事多磨,不是吗?。链接器报错说_compress与 _uncompress函数不认识。我们需要在VS2013解决方案,右键属性,C/C++,预处理器定义,加入宏ZLIB_WINAPI,现在再编译链接试试;
9.成功了,两个警告,一个是zlib官方例子使用strcpy,微软提示strcpy_s安全点;还有一个是LIBCMT冲突,可以在VS2013解决方案,右键属性,链接器,输入,忽略特定默认库,编辑加入LIBCMT.lib,我们再重新生成项目看看;
10.执行EXE,成功压缩与解压缩。
11.一些其他问题:使用zlib静态库,提示error LNK2026: 模块对于 SAFESEH 映像是不安全的。可以在VS2013解决方案,右键属性,链接器,命令行,加入/SAFESEH:NO。发布Release版本,上方有的操作,需要重复。你可以根据编译器或者链接器提示的错误,决定如何做。
原文地址:https://www.cnblogs.com/yangjinbang/p/8331381.html