2013-08-21 2 views
0

zlib 설명서에 따르면이 오류는 "출력 버퍼에 공간이 부족합니다"라고 표시됩니다. 아래는 아주 기본적인 압축 루틴입니다. 또한 nUncompressedBuffer가 올바르게 채워지는지 확인했습니다. 또한 nCompressedBuffer가 nUncompressedBuffer보다 훨씬 크며 버퍼 크기의 조합이 필요 없다는 것을 알 수 있습니다. 도와주세요 :)zlib.h 유틸리티 함수 compress를 사용하여 데이터 압축을 시도하면 항상 Z_BUF_ERROR가 반환됩니다.

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

@PlasmaHH Iyiyi 그것을 말해! 당신은 선생님입니다. 내 말은, 고마워. – user1464251

+0

첫 번째 주석 작성자는 해당 주석을 응답으로 변환해야합니다. 그것은 정답입니다. –

답변

0

글쎄, 출력 버퍼가 0 바이트라고 말해야합니다.

-@PlasmaHH

관련 문제