Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4780954
  • 博文数量: 1140
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 13716
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
  • 认证徽章:
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1140)

文章存档

2019年(116)

2018年(81)

2017年(80)

2016年(70)

2015年(52)

2014年(41)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(288)

分类: Windows平台

2016-11-26 22:54:10


zlib在windows上的安装:
http://blog.csdn.net/suxinpingtao51/article/details/8626766

zlib的安装:下载后查看makeFile.msc文件 
    在vs.NET的命令窗口运行cmd, 
    进入win32\中执行:nmake -f win32/Makefile.msc

zlib的使用方法 
所需的头文件和库名称 
包含头文件 zlib.h 和 zconf.h 和 zdll.lib(或是zlib.lib)

zlib在程序中压缩buffer缓冲区: 
//压缩src压缩到dest中,srclen是原来的长度,destLen是压缩后的长度 
//result: =Z_OK成功、Z_MEM_ERROR没有足够的内存,Z_BUF_ERROR目标缓冲不够大 
//level: 压缩级别 
int compress(byte *dest, ulong *destLen, const byte *src, ulong srcLen); 
int compress(byte *dest, ulong *destLen, const byte *src, ulong srcLen, int level);


//将src解压到dest中,srclen是原长度,destlen是解压后的长度 
//result: =Z_OK成功、Z_MEM_ERROR没有足够的内存, 
//        Z_BUF_ERROR目标缓冲不够大,=Z_DATA_ERROR数据出错 
int uncompress(byte *dest, ulong *destLen, const byte *src, ulong srcLen);


//计算需要压缩的缓冲区的长度;粗略的计算 
ulong compressBound(ulong srcLen);

deflateInit(), deflate(), deflateEnd() 内部进行压缩 
inflateInit(), inflate(), inflateEnd() 内部进行解压

gz开头的函数,是用来操作*.gz文件和stdio的函数类似, 
其实只要有compress和uncompress两个函数就足够用了


压缩和解压的小例子
//未压缩的原始数据
unsigned char pchSrc[] = "xxx...." ;
unsigned long nSrcLen = sizeof(pchSrc);

//压缩之后的数据要存储的缓冲区
unsigned char achComp[1024];
unsigned long nCompLen = 1024;

//解压缩之后的数据存储的缓冲区
unsigned char achUncomp[1024];
unsigned long nUncompLen = 1024 ;

//将原始数据压缩到压缩缓冲内
compress(achComp,&nCompLen, pchSrc,nSrcLen);

//将压缩的数据解压到解压缓冲区内
uncompress(achUncomp,&nUncompLen, achComp,nCompLen);

//显示原始数据信息
printf("原始数据(%d):\n%s\n\n", nSrcLen,pchSrc);

//显示压缩之后的数据
printf("压缩数据(%d):\n%s\n\n", nCompLen,achComp);

//显示解压缩之后的数据
printf("解压数据(%d):\n%s\n\n", nUncompLen,achUncomp);

========================================================================================================================================

把 pci8501.dll拷贝到 bcb6\bin 下
然后在控制台下进入 bcb6\bin 目录
implib -a pci8501.lib pci8501.dll
如果没有错误  会生成一个 pci8501.lib
这个 lib 是可以在 bcb 下用的


http://www.base2ti.com/?id=delphi.zlib 下载 1.2.3 for Delphi 7 / BCB6 的版本.

库添加到c++ builder 6.0的工程中

1)   打开一个c++ builderproject

2)   Project中添加opensslinclude directorylibraries directory

Project->Option->Directories/Conditionals选项中,在Include path添加目录

3)   project中添加 libraries

Project->add to project中添加.lib文件(DelphiZLib.lib)




http://bbs.csdn.net/topics/310185055
implib -a zlib.lib zlib.dll 
zconf.h第268行

#  define Bytef Byte FAR
改为:
#  define Bytef unsigned char FAR

把268行改成:
C/C++ code
?
1
#define Bytef unsigned char FAR
把270行改成:
C/C++ code
?
1
typedef unsigned char FAR Bytef;


点击(此处)折叠或打开

  1. 1、在网站http://www.zlib.net/中下载了Zlib.dll,上面提供了四个,我下载的是:

  2. “zlib compiled DLL, version 1.2.3, zipfile format (79K, MD5 checksum cc7fa97f9c19386bb701acc79d0abbca)

  3. 2、解压缩,得到文件夹及文件为:include文件夹(包括zconf.h,zlib.h文件),lib文件夹(包括zdll.exp,zdll.lib,zlib.def文件),test文件夹(包括example_d.exe,minigzip_exe,testzlib_d.exe,untgz_d.exe文件),以及四个文件DLL_FAQ.txt,README.txt,USAGE.txt和zlib1.dll文件。

  4. 3、利用C++Builder6的implib.exe将步骤2中的zlib1.dll转换为zlib.lib

  5. 4、将步骤2中的include文件夹中的zconf.h,zlib.h文件放到CB的安装目录“..\CBuilder6\Include\”下,自己建立了一个Zlib文件夹存放,便于查找,即最后的存放目录为“..\CBuilder6\Include\Zlib\zconf.h”以及“..\CBuilder6\Include\Zlib\zlib.h”。同理,将步骤3中生成的zlib.lib存放为“..\Borland\CBuilder6\Lib\Zlib\zlib.lib”下。

  6. 5、新建CB工程。在Project-Options-Directories/Conditions中分别将“..\CBuilder6\Include\Zlib”添加到Include Path中,以及将“..\Borland\CBuilder6\Lib\Zlib”添加到Library Path中。

  7. 6、利用Project-Add to Project将“..\Borland\CBuilder6\Lib\Zlib\zlib.lib”文件添加到当前工程中。

  8. 7、在unit1.cpp里添加#include "zlib.h",编辑运行

zlib本就是c的东西。
先去http //www gzip org/zlib/下在最新的zlib的库
下载好在本机编译一下。
先bcc32 -c -O2 -6 -w-8004 -w-8057 -w-8012 *.c //编译
再tlib zlib.lib +adler32.obj +.... //生成lib文件 依次加上刚才编译生成的obj文件 注意minigzip.obj 和 example.obj 不要加进去。那是测试用的。不是zlib库!!!

生成好zlib.lib后就可以使用了。
在目录里会有zlib.h 使用时include "zlib.h" 再在工程里加上zlib.lib 这样就可以直接使用zlib库的函数了。

这里有一个使用zlib库的简单的例子。你可以看一下。
http //www cnxbb com/bcb/C++ZlibTest.rar


阅读(1664) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册