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

次のように、圧縮バッファーを割り当て、そのサイズを最初の 2 つのパラメーターとして送信する必要があります。

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