2016年5月30日 星期一

0530 compress Z_BUF_ERROR 原因解析 跟成功範例

uncompress (Bytef *dest,   uLongf *destLen, const Bytef *source, uLong sourceLen) 
zlib出現Z_BUF_ERROR的原因是輸出緩衝區不夠大,那麼zlib怎麼判斷輸出緩衝區,就是通過destLen參數來判斷的,這個destLen的用法很特別,它既用來表示你給輸出緩衝區分配了多大,又通知你它最終輸出的結果是多大,所以,在調用這個函數之前一定要把destLen賦值為dest的大小,而不能默認為0
對於lzma庫的函數調用也是一樣需要這樣做的。

compress  也是需要先給於初值!!否則會出錯 成功範例
 char zipReturn_data[100 * 1024]; //100K for map buffer
uLong ucompSize = 2048 *2048;
uLong zipReturn_len = compressBound(ucompSize);
 int iZipCode = compress( (Bytef *)zipReturn_data, (uLongf *)&zipReturn_len,(const Bytef *)pCellData, (uLong)ucompSize);
    if(iZipCode!=Z_OK)
    {
        log("zip file %d\n",iZipCode);
    }


沒有留言:

張貼留言

cocos2dx-lua 建立滑鼠監聽

重要關鍵字  EVENT_MOUSE_SCROLL addEventListenerWithSceneGraphPriority      if IsPc() then --建立滑鼠監聽         local listener = cc.EventListenerMouse...