Chinaunix首页 | 论坛 | 博客

abc

  • 博客访问: 21998
  • 博文数量: 17
  • 博客积分: 765
  • 博客等级: 军士长
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-11 22:34
文章分类

全部博文(17)

文章存档

2010年(3)

2009年(14)

我的朋友
最近访客

分类: 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无法装载.

阅读(399) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~