0

我想用 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
任何帮助都会被赞赏

4

1 回答 1

3

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

Byte compr[SomeReasonableSize];
uLong comprLen = sizeof(compr);
...
于 2013-05-09T15:03:46.087 回答