你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux/Windows下Zlib的安装与使用

[日期:2012-06-04] 来源:Linux社区  作者:Linux [字体: ]

二:Windows平台

zlib提供了用VC++6.0编译的版本,因此我们首先在Windows下编译zlib的源代码,然后再用上面的例子测试:

1.

解压zlib-1.2.3-src.zip(文末有链接),打开zlib.dsw,直接编译,提示:

'ml.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。

2.

因为ml.exe是微软的汇编编译器,我们不需要,因此:Build-->Set Active Project Configuration,将所有的带"ASM"的项都去掉,然后选择Win32 LIB Debug,如下图:


3.

zlib classes上右键选择设为启动项目,然后再编译,出现如下错误:

fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory compress.c

unistd.h是Linux下的文件,我们不需要,只要将#if 1 改为#if 0即可,如下图所示:

4.

再编译,发现出现如下4个错误:

error C2059: syntax error : 'bad suffix on number'

error C2146: syntax error : missing ')' before identifier 'L'
error C2198: 'gzseek' : too few actual parameters
error C2059: syntax error : ')'


没关系,将0LL改为0L即可(即去掉一个L),如下图:


5.

再编译,没有错误,如下图:


6.

zlib编译好后,会生成zlib1.lib和zlib1.dll两个文件,这正是我们需要的。

下面还是用之前的测试程序:

新建一个VC++6工程,加入如下的代码,并将zlib1.dll拷贝到项目目录下

  1. #include <stdio.h>   
  2. #include "../zlib/include/zlib.h"   
  3. #pragma comment(lib, "../zlib/lib/zlib1.lib")   
  4.   
  5. int main()  
  6. {  
  7.   /* 原始数据 */  
  8.   unsigned char strSrc[] = "hello world! aaaaa bbbbb ccccc ddddd 中文测试 yes";  
  9.   unsigned char buf[1024] = {0};  
  10.   unsigned char strDst[1024] = {0};  
  11.   unsigned long srcLen = sizeof(strSrc);  
  12.   unsigned long bufLen = sizeof(buf);  
  13.   unsigned long dstLen = sizeof(strDst);  
  14.   
  15.   printf("Src string:%s\nLength:%ld\n", strSrc, srcLen);  
  16.     
  17.   /* 压缩 */  
  18.   compress(buf, &bufLen, strSrc, srcLen);  
  19.   printf("After Compressed Length:%ld\n", bufLen);  
  20.   
  21.   /* 解压缩 */  
  22.   uncompress(strDst, &dstLen, buf, bufLen);  
  23.   printf("After UnCompressed Length:%ld\n",dstLen);  
  24.   
  25.   printf("UnCompressed String:%s\n",strDst);  
  26.     
  27.   return 0;  
  28. }  

和之前的程序类似,只多了#pragma comment,这里需要填入zlib1.lib的正确路径

然后运行,一切正常,如下图:


呵呵,我们发现同样的字符串在Linux和Windows上长度是不一样的!

另外还要说的是我们编译的VC++6.0版的zlib工程中包含一个example示例程序,可以参考参考。

为了方便大家,本文的所有源码都可以下载:

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2012年资料/6月/4日/Linux&Windows下Zlib的安装与使用/

linux
相关资讯       Zlib安装 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款