【问题标题】:What easy zlib tutorials are there? [closed]有哪些简单的 zlib 教程? [关闭]
【发布时间】:2011-07-18 17:58:03
【问题描述】:

我正在寻找关于 zlib 的好教程。我只对解压缩档案感兴趣。我还想知道如何访问存档中的所需文件,最好仅通过文件名访问,如果可以在 zlib 中完成的话。

【问题讨论】:

  • 最好是,但不一定。
  • 请注意 zlib 仅用于(解)压缩数据流。它不像 zip 或 tar 那样用于处理档案或文件集合,尽管其他格式可能会在内部使用 zlib 来实现其某些功能。

标签: c++ c zlib


【解决方案1】:

嗯,有很多 zlib 文章、技巧和教程。其中一些是

1) Bobobobo 的博客

网址:http://bobobobo.wordpress.com/2008/02/23/how-to-use-zlib/

这篇文章基本上告诉你如何 使用zlib,并且有一个sn-p 可以让你继续前进的代码。这 项目向您展示了如何使用 zlib。它的 一个控制台项目,因为没有 需要创建一个窗口来演示 使用 zlib。

2) zlib:为您的 C/C++ 应用程序添加工业强度压缩

网址:https://www.codeguru.com/cplusplus/zlib-add-industrial-strength-compression-to-your-c-c-apps/

为简单起见,本教程 仅涵盖基本的 C 风格 界面。所有固有的概念 将与大多数其他相关 绑定。由于它是 C 语言,所以它 对您最有利 要求。

最后,您也可以在 zlib 中使用它... Zlib 包含它们。在“实用程序功能”下查看手册。

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

【讨论】:

【解决方案2】:

【讨论】:

    【解决方案3】:

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

    这里值得一提的另一个选项是提升。请注意,您必须使用特殊标志编译 boost 以支持 zlib。

    【讨论】:

      【解决方案4】:

      使用 zlib 最简单的方法是在 C++ 中使用

      https://github.com/rudi-cilibrasi/zlibcomplete

      zlibcomplete 库使它变得简单,因为您不需要进行任何原始指针操作。它基于 RAII(资源分配即初始化),这意味着所有动态分配和释放的东西都在构造函数中自动发生。

      它比 Boost zlib 包装器更好,因为它支持刷新(交互式网络协议所必需的)并且使用更简单。 zlibcomplete 库仅使用常规 std::string 来发送和接收数据,因此不需要高级知识。

      【讨论】:

        【解决方案5】:

        最简单的方法是读取zpipe.c,其中有一个walk-through in zlib documentation。

        它小巧而全面,实现并说明了压缩和解压缩。你可以只复制粘贴和修改数据流的东西,例如你可能不会读写文件而是内存。

        需要注意的一点:如果您正在处理 GZIP(而不是 deflate),您可能会在发出 HTTP 请求时发现这种情况,您需要将 inflateInit(&strm) 替换为 inflateInit2(&strm, 16 + MAX_WBITS),因为 GZIP 具有更大的标头。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-15
          • 2011-01-01
          • 2011-03-22
          • 1970-01-01
          • 1970-01-01
          • 2013-11-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多