C ++ zLib压缩字节数组

时间:2013-05-09 15:00:59

标签: c++ zlib

我想用zlib压缩一个字节数组,这是我的代码:

void CGGCBotDlg::OnBnClickedButtonCompress()
{
   // TODO: Add your control notification handler code here
   z_const char hello[] = "hello, hello!";
   Byte *compr;
   uLong comprLen;

   int ReturnCode;
   uLong Length = (uLong)strlen(hello)+1;

   ReturnCode = compress(compr, &comprLen, (const Bytef*)hello, Length);
}

但ReturnCode总是返回-2(Z_STREAM_ERROR)
我直接从zlib示例代码(example.c)获取此代码,它在自己的示例程序上工作,并返回0(Z_OK),但在我的程序中它返回-2
任何帮助将不胜感激

1 个答案:

答案 0 :(得分:3)

您需要分配压缩缓冲区并将其大小作为前两个参数发送,如下所示:

Byte compr[SomeReasonableSize];
uLong comprLen = sizeof(compr);
...