Использование zlib в вашем коде очень просто, что документация (или различные ответы на stackoverflow, которую я нашел) не делает очевидной.
Следующая техника работает для любого компилятора и IDE. Я тестировал его в Windows mingw с помощью кода: blocks, поэтому я отправляю его как ответ на этот вопрос.
Скачать исходный код Zlib из http://www.zlib.net/
Скопируйте все .c и .h файлы из корневой папки источника ZLIB к папке в поисковой составитель пути.
Добавить исходные файлы zlib в проект IDE.
Добавить #include "zlib.ч»к исходному коду
Вызов компресс или распаковывать
Вот так. Это вряд ли может быть проще.
Все, что вы должны быть осторожны является управление памятью, так как это с . код
чтобы сделать еще проще для себя, я соединил обертку C++, которые вы можете использовать, например:
/** ZLIB C++ wrapper
Usage:
<pre>
#include "cZLIB.h"
{
// compress data in bigbuffer
raven::set::cZLIB ZLIB;
ZLIB.Compress(bigbuffer, sizebigbuffer);
// use compressed buffer, before ZLIB goes out of scope
use(ZLIB.Buffer(), ZLIB.Length());
}
...
{
// decompress data in smallbuffer
raven::set::cZLIB ZLIB;
ZLIB.Inflate(smallbuffer, sizesmallbuffer)
// use decompressed data, before ZLIB goes out of scope
use(ZLIB.Buffer(), ZLIB.Length());
}
</pre>
Build:
Download this code (cZLIB.h and cZLIB.cpp) from
https://github.com/JamesBremner/raven-set
and install somewhere in your compiler search path.
Let's assume you install it in folder .../src.
Download the zlib source code from http://www.zlib.net/
Copy all the .c and .h files from the root folder of the zlib source
to a new folder .../src/zlib
Add the files cZLIB.h, cZLIB.cpp and all the files in .../src/zlib
to the IDE project.
Build.
*/
class cZLIB
...
По какой-то причине я обнаружил, что mingw имеет библиотеку zlib и библиотеку libz. Когда я использую libz, все работает. Я действительно не знаю, каковы различия или почему имя обратное, о скважины. В руководстве говорится, что выходной буфер должен быть только на 12 байтов больше, чем на входе, поскольку это наихудшее сжатие (10-байтовый заголовок и 2 байта, чтобы сказать, что нет сжатия?). Теперь он работает с libz вместо zlib. Infact Я думаю, что файлы библиотеки zlib - это файлы, некоторые из которых случайно были установлены еще с момента создания монетизации. (p.s. Моды: ответ на вашу собственную кнопку вопроса не работает для меня ?!) – myforwik
@myforwik: libz is zlib. – 2010-11-12 09:59:54