下载与解压

可以到zlib官网 http://zlib.net/ 下载,这个没有被墙的,如果下载,试一下换个网络再访问。因为我在公司的网络是访问不了的。

我当前使用的是 zlib1.2.11版本。

下载好后,解压出来,看看根目录下有一个CMakeLists.txt,就证明可以用CMake创建VS的工程了。

CMake创建工程

把source code和build the binaries的路径设置后好,点击【Configure】,出去的配置项中,需要看看其中包括了INSTALL的项目,路径最好都改为VC路径下;

若不修改,默认在安装一步是会把lib、dll还有头文件安装到C盘中,后期使用的时候还需要手动添加这些路径到工程里去;

用CMake配置工程时,前提也要把安装路径添加到环境变量中的Path里,不然CMake没法查找到这个库的路径的。

所以为了方便,还是安装在VC路径最好。

这里确认好后,就点击【Generate】,基本不会出问题的,就点击【Open Project】打开工程进行后面的步骤。

编译与安装

打开后,直接在【解决方案】上鼠标右键,再点【生成解决方案】,之前就是编译过程,等待一会儿:

接着就是安装,对其中的【INSTALL】项目,右键【仅用于项目】=>【仅生成INSTALL】就可以执行安装操作了:

完成

小提示:

最好是把Debug和Release版本的都编译安装好,并且在后期不同的版本里使用上对应版本的库。

Debug版本:zlibd.lib  zlibd.dll

Release版本: zlib.lib  zlib.dll

头文件是一样的.

例程

main.cpp

 #include <stdio.h>
#include <zlib.h> int main(int argc, char **args)
{
/*原始数据*/
unsigned char strsrc[] = "这些是测试数据。123456789 abcdefghigklmnopqrstuvwxyz\n\t\0abcdefghijklmnopqrstuvwxyz\n"; //包含\0字符
unsigned char buf[] = { };
unsigned char strdst[] = { };
unsigned long srclen = sizeof(strsrc);
unsigned long buflen = sizeof(buf);
unsigned long dstlen = sizeof(strdst);
int i;
FILE * fp; printf("源串:");
for (i = ; i<srclen; ++i)
{
printf("%c", strsrc[i]);
}
printf("原串长度为:%ld\n", srclen); printf("字符串预计算长度为:%ld\n", compressBound(srclen));
//压缩
compress(buf, &buflen, strsrc, srclen);
printf("压缩后实际长度为:%ld\n", buflen);
//解压缩
uncompress(strdst, &dstlen, buf, buflen); printf("目的串:");
for (i = ; i<dstlen; ++i)
{
printf("%c", strdst[i]);
} return ;
}

例程用了一下别人写的,很简单的一个,就试运行一下。

最新文章

  1. [bzoj3123][sdoi2013森林] (树上主席树+lca+并查集启发式合并+暴力重构森林)
  2. 装13失败后的逆袭(ComboBox的联动)
  3. PHP写时复制, 变量复制和对象复制不同!!!
  4. 将一个query后面的参数转为数组
  5. 【转】Lua coroutine 不一样的多线程编程思路
  6. struts2中的addActionError 、addFieldError、addActionMessage的方法
  7. 【转载】DataGridView 使用集合作为数据源,并同步更新
  8. uva 10160
  9. HTTP Header 详解【转】
  10. jenkins api调用
  11. const用法
  12. ORACLE函数之单行数字函数
  13. javascript !!的作用是把一个其他类型的变量转成的bool类型
  14. EF实体类配置总结
  15. angular项目——小小记事本2
  16. JS排序
  17. .net 笔试面试总结(2)
  18. 通用权限管理系统之权限菜单zTree树的展示及移动的处理方法
  19. C++中为什么有时要使用extern &quot;C&quot;
  20. 怎么让Windows2012和Windows2008多用户同时远程

热门文章

  1. 【visio】 图片
  2. debug assertion failed问题解决
  3. 【MySQL】库的操作
  4. 【JavaScript基础#2】
  5. ASP.NET CORE 基础知识(一):概述【下】
  6. DBC物品中打包物品参数设置
  7. 复变函数知识总结(2)——Cauchy理论
  8. ubuntu apache 通过端口新建多个站点
  9. twisted task.cpperator
  10. kongdashboard