内存中的Visual C ++压缩

时间:2011-12-06 11:17:14

标签: winapi mfc visual-c++-2010

我有一个“stringstream”变量,它以gzip格式存储一些压缩的二进制数据。

我想在内存中解压缩这个stringstream变量。

首先,对于gzip格式的二进制数据的内存中解压缩,您建议使用哪个第三方库?

我注意到zlib库用于压缩/解压缩gzip和deflate格式。

然而,处理zlip提供的解压缩的两个函数似乎并不完全符合我的需求:

int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); 

int gzread (gzFile file, voidp buf, unsigned len);

第一个(解压缩)要求我提前知道解压缩数据的长度,以便为存储正确分配足够的内存。就我而言,它是未知的。

另一方面,第二个(gzread)将文件作为输入,而不是内存缓冲区。

对于使用zlip或其他库进行“高效”内存中解压缩,您有什么建议?

感谢。

1 个答案:

答案 0 :(得分:0)

在Boost库中似乎有一些gzip的解压缩过滤器,这可能值得研究:

http://www.boost.org/doc/libs/1_48_0/libs/iostreams/doc/classes/gzip.html