有哪些简单的 zlib 教程?

发布于 2024-10-24 01:10:49 字数 1539 浏览 4 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

π浅易 2024-10-31 01:10:49

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

1) Bobobobo 的博客

本文主要告诉您如何使用 zlib,并且有一段代码可以帮助您入门。

该项目向您展示如何使用 zlib。它是
一个控制台项目,因为没有
需要创建一个窗口来演示
使用 zlib。

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

为了简单起见,本教程
只涵盖基本的C风格
界面。所有固有的概念
与大多数其他相关
绑定。

由于它是C语言的,因此它将最有利于您的要求。

最后,您也可以在 zlib 中使用它。来自手册,实用函数

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

Well there are many zlib articles , tips and tutorials. Some of them are

1) Bobobobo's Blog

This article basically tells you how to use zlib, and there is a snippet of code that will get you going.

This project shows you how to use zlib. Its
a console project, because there's no
need to create a window to demonstrate
use of zlib.

2) zlib: Add Industrial Strength Compression to Your C/C++ Apps

For simplicity's sake, this tutorial
covers only the basic C-style
interface. All the concepts inherent
there will be relevant to most other
bindings.

Since its in C language, it will be most beneficial to your requirements.

Last, you can use this too available in zlib. From the manual, Utility Functions:

ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
                                   const Bytef *source, uLong sourceLen));
百善笑为先 2024-10-31 01:10:49

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

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

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

Another option worth mentioning here is boost. Note you must compile boost with special flags for zlib support.

ゃ人海孤独症 2024-10-31 01:10:49

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

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

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

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

The simplest way to use zlib is in C++ with

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

The zlibcomplete library makes it easy because you don't need to do any raw pointer manipulation whatsoever. It is based on RAII (Resource Allocation is Initialization) which means that all the dynamic allocation and deallocation stuff happens automatically in the constructors.

It is better than the Boost zlib wrapper because it supports flush (necessary for interactive network protocols) and is simpler to use. The zlibcomplete library uses only regular std::string to send and receive data so no advanced knowledge is required.

被翻牌 2024-10-31 01:10:49

最简单的方法是阅读 zpipe.c,它有一个zlib 文档中的演练

它小巧而全面,实现并说明了压缩和解压缩。您可以仅复制、粘贴和修改数据流内容,例如,您可能不读取和写入文件,而是读取和写入内存。

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

The simplest approach is to read zpipe.c, which has a walk-through in zlib documentation.

It is tiny and comprehensive, implements and illustrates compression and decompression. You can just copy and paste and modify the data stream stuff, for example you may not read and write to files but to memory.

One thing to notice: if you're handling GZIP (instead of deflate), which you may find when making a HTTP request, you need to replace inflateInit(&strm) with inflateInit2(&strm, 16 + MAX_WBITS), since GZIP has a bigger header.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文