compress.cpp

来自「swf 格式文件(Flash)阅读器.根据 Flash 文件窗口的大小自适应调整」· C++ 代码 · 共 38 行

CPP
38
字号
#include "stdafx.h"
#include "zlib.h"

int uncompress (BYTE *dest, unsigned long *destLen,
            const BYTE *source, unsigned long sourceLen)
{
    z_stream stream;
    int err;

    stream.next_in = (BYTE*)source;
    stream.avail_in = (unsigned int)sourceLen;

    if ((unsigned long)stream.avail_in != sourceLen)
		return Z_BUF_ERROR;

    stream.next_out = dest;
    stream.avail_out = (unsigned int)*destLen;
    if ((unsigned long)stream.avail_out != *destLen)
		return Z_BUF_ERROR;

    stream.zalloc = (alloc_func)0;
    stream.zfree = (free_func)0;

    err = inflateInit(&stream);
    if (err != Z_OK)
		return err;

    err = inflate(&stream, Z_FINISH);
    if (err != Z_STREAM_END)
    {
        inflateEnd(&stream);
        return err == Z_OK ? Z_BUF_ERROR : err;
    }
    *destLen = stream.total_out;
    err = inflateEnd(&stream);
    return err;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?