分类: C/C++
2009-12-16 21:46:09
zlib的简单使用
1. 下载zlib库
2. 示例源代码
#include
#include
#include "zlib.h"
#pragma comment(lib, "zlib.lib")
int main(int argc, char *argv[])
{
char buf[1024];
char destbuf[1024];
char buf2[1024];
unsigned long lDestLen = 1024;
memset(buf, 0, sizeof(buf));
memset(destbuf, 0, sizeof(destbuf));
memset(buf2, 0, sizeof(buf2));
unsigned long srcLen = 64;
for(int i=0; i
buf[i] = i;
}
buf [32] = 0;
int iRet = ::compress((Bytef *)destbuf, &lDestLen, (Bytef *)buf, srcLen);
if (Z_OK == iRet)
{
printf("compress ok dest len %d\n", lDestLen);
unsigned long lBuf2Len = 1024;
iRet = ::uncompress((Bytef *)buf2, &lBuf2Len, (Bytef *)destbuf, lDestLen);
if (Z_OK == iRet)
{
printf("uncompress ok dest len %d\n", lBuf2Len);
if (lBuf2Len != srcLen)
{
printf("uncompress len Different\n");
}
else if (memcmp(buf, buf2, lBuf2Len) != 0)
{
printf("uncompress data Different\n");
}
else
{
printf("uncompress data same\n");
}
}
else
{
printf("uncompress error: %d\n", iRet);
}
}
else
{
printf("compress error: %d\n", iRet);
}
return 0;
}
#pragma comment(lib, "zlib.lib") 使用的是静态链接
如果是在dll中使用zlib的话, 应该使用zdll.lib, 这样是动态链接, 不然dll无法装载.