我想用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
任何帮助将不胜感激
答案 0 :(得分:3)
您需要分配压缩缓冲区并将其大小作为前两个参数发送,如下所示:
Byte compr[SomeReasonableSize];
uLong comprLen = sizeof(compr);
...