【问题标题】:Gzip In-Memory CompressionGzip 内存压缩
【发布时间】:2010-06-02 05:30:18
【问题描述】:

快速简单的问题。

网上有关于使用 zlib (C++) 实现内存中 gzip 压缩的示例,无需外部库(如 boost 等)?

我只需要压缩和解压缩一个数据块,没有太多选择。 (它必须是 gzip 与另一个我的 C# 程序使用的相同格式(数据要共享))

尝试搜索无济于事... 谢谢!

【问题讨论】:

  • 我假设 zlib 被允许作为外部库? :-P
  • 我想了解 gzip,如果我需要快速修复我的程序,我会在里面扔 boost。 :D
  • 好吧,zlib 显然是允许的:D
  • 所以 - ZLib 是一种方法。这是一个很棒的图书馆。不依赖于任何其他库。
  • 你看过zlib网站了吗:zlib.net/zlib_how.html

标签: c++ windows memory compression gzip


【解决方案1】:

您使用了一个名为 zlib 的外部库。如果您不想将 DLL 与您的程序捆绑在一起,您可以静态链接到该库。

zlib 可以很好地使用内存缓冲区。

你不需要提升。

【讨论】:

    【解决方案2】:

    这不是您问题的完整答案,但您可能会对How can I decompress a gzip stream with zlib? 感兴趣。为了让 zlib 与 gzip 流一起工作,您需要提供一些记录不充分的魔法。

    zlib API 有许多不依赖于磁盘上实际文件的内存压缩函数。

    【讨论】: