При попытке сжать данные с помощью служебной функции zlib.h всегда возвращается Z_BUF_ERROR

Согласно руководству zlib эта ошибка указывает на «недостаточно места в буфере вывода». Ниже моя самая простая процедура сжатия. Я также подтвердил, что nUncompressedBuffer заполняется правильно. Также вы заметите, что nCompressedBuffer намного больше, чем nUncompressedBuffer, и никакая комбинация размеров буфера для меня не работает. Помогите, пожалуйста 🙂

CDataBlock* CCompressionManager::Compress2(CDataBlock* pInBlock)
{
U8     nCompressedBuffer[100000];
U8     nUncompressedBuffer[1000];
S8     status                 = 0;
uLongf compressedBufferLength = 0;

pInBlock->GetData()->GetData( nUncompressedBuffer, 1000 );

status = compress2( nCompressedBuffer,
&compressedBufferLength,
nUncompressedBuffer,
pInBlock->GetData()->GetLength(),
Z_DEFAULT_COMPRESSION );

printf("status is: %i\n", status);
//this always results in -5 Z_BUF_ERROR}

0

Решение

Ну, вы должны сказать ему, что выходной буфер имеет длину 0 байт.

@PlasmaHH

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector