码迷,mamicode.com
首页 > 其他好文 > 详细

zlib1.2.11静态库使用

时间:2018-01-23 00:55:15      阅读:790      评论:0      收藏:0      [点我收藏+]

标签:compress   图片   nap   get   习惯   lease   解压缩   common   解压   

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版本,上方有的操作,需要重复。你可以根据编译器或者链接器提示的错误,决定如何做。

zlib1.2.11静态库使用

标签:compress   图片   nap   get   习惯   lease   解压缩   common   解压   

原文地址:https://www.cnblogs.com/yangjinbang/p/8331381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!