**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
两年前关闭了。
Improve this question
我正在寻找一个关于zlib的好教程。我只对解压归档文件感兴趣。我还想知道如何在归档文件中访问所需的文件,最好只通过文件名,如果这在zlib中可以完成的话。
**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
两年前关闭了。
Improve this question
我正在寻找一个关于zlib的好教程。我只对解压归档文件感兴趣。我还想知道如何在归档文件中访问所需的文件,最好只通过文件名,如果这在zlib中可以完成的话。
5条答案
按热度按时间lb3vh1jj1#
有很多zlib文章、技巧和教程,其中一些是
1)Bobobobo's Blog
本文主要介绍如何使用zlib,其中有一小段代码可以帮助您使用。
这个项目向你展示了如何使用zlib。它是一个控制台项目,因为不需要创建一个窗口来演示zlib的使用。
2)zlib: Add Industrial Strength Compression to Your C/C++ Apps
为了简单起见,本教程只介绍基本的C风格接口,所有的概念都与大多数其他绑定相关。
由于它在C语言,它将是最有益于您的要求。
最后,你也可以使用zlib中的这个函数。从手册中,实用函数:
iqjalb3h2#
参见http://zlib.net/zlib_how.html
wwwo4jvm3#
http://www.boost.org/doc/libs/1_48_0/libs/iostreams/doc/classes/zlib.html
另一个值得一提的选项是boost,注意你必须使用特殊的标志来编译boost以支持zlib。
xmq68pz94#
使用zlib最简单的方法是在C++中使用
https://github.com/rudi-cilibrasi/zlibcomplete
zlibcomplete库使这变得简单,因为你不需要做任何原始的指针操作。它基于RAII(资源分配即初始化),这意味着所有的动态分配和解除分配的事情都在构造函数中自动发生。
它比Boost zlib Package 器更好,因为它支持flush(交互式网络协议所必需的),并且使用更简单。zlibcomplete库只使用常规的std::string来发送和接收数据,因此不需要高级知识。
kqqjbcuj5#
最简单的方法是读取
zpipe.c
,它有一个walk-through in zlib documentation。它很小,很全面,实现并说明了压缩和解压缩。你可以只复制,粘贴和修改数据流的东西,例如,你可能不读写文件,但内存。
有一点需要注意:如果您正在处理GZIP(而不是deflate)(在发出HTTP请求时可能会遇到这种情况),则需要将
inflateInit(&strm)
替换为inflateInit2(&strm, 16 + MAX_WBITS)
,因为GZIP具有更大报头。