Какие простые уроки zlib есть? - PullRequest
25 голосов
/ 19 марта 2011

Я ищу хороший учебник по zlib. Я заинтересован только в распаковке архивов. Я также хочу знать, как я могу получить доступ к нужному файлу внутри архива, желательно только по имени файла, если это вообще можно сделать в zlib.

Ответы [ 4 ]

33 голосов
/ 19 марта 2011

Ну, есть много zlib статей, советов и уроков.Вот некоторые из них:

1) Блог Bobobobo

Сайт: http://bobobobo.wordpress.com/2008/02/23/how-to-use-zlib/

В этой статье рассказывается, какиспользуйте zlib, и есть фрагмент кода, который поможет вам.Этот проект показывает, как использовать zlib.Это консольный проект, потому что нет необходимости создавать окно для демонстрации использования zlib.

2) zlib: добавление промышленной прочности в приложения C / C ++

Веб-сайт: http://www.codeguru.com/cpp/cpp/algorithms/compression/article.php/c11735

Для простоты в этом руководстве рассматривается только базовый интерфейс в стиле C.Все присущие им понятия будут относиться к большинству других привязок.Поскольку он написан на языке C, он будет наиболее полезным для ваших требований.

И последнее, вы можете использовать это слишком доступно в zlib ... Zlib содержит их.Ознакомьтесь с руководством в разделе «Функции утилит».

ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
                                   const Bytef *source, uLong sourceLen));
5 голосов
/ 19 марта 2011
2 голосов
/ 16 июля 2012

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

Еще один вариант, который стоит упомянуть, это повышение.Обратите внимание, что вы должны скомпилировать boost с помощью специальных флагов для поддержки zlib.

0 голосов
/ 08 июля 2015

Самый простой способ использовать zlib - это C ++ с

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

Библиотека zlibcomplete упрощает эту задачу, поскольку вам не нужно выполнять какие-либо необработанные манипуляции с указателями. Он основан на RAII (Resource Allocation is Initialization), что означает, что все динамическое распределение и освобождение происходит автоматически в конструкторах.

Это лучше, чем оболочка Boost zlib, потому что она поддерживает сброс (необходим для интерактивных сетевых протоколов) и проще в использовании. Библиотека zlibcomplete использует только обычные std :: string для отправки и получения данных, поэтому никаких дополнительных знаний не требуется.

...