Надеюсь моя инструкция поможет научиться собирать и использовать QuaZIP ZIP/UNZIP package.
Она сделана на скорую руку, и для себя, но на мой взгляд, приоткроет путь для движения.
http://turbobit.net/5ylfl3zozptr.html - выложил решение VS2008 с проверочным проектом и проектами библиотек QuaZIP и zlib.
Инструкция по сборке QuaZIP - Qt/C++ wrapper for ZIP/UNZIP package (
http://quazip.sourceforge.net/)
для IDE VS2008
Владислав Хохряков 2014 г.
1) Собрать zlib:
- Скачать и распаковать zlib-1.2.5:
источник:
http://www.winimage.com/zLibDll/index.htmlфайл: Current version (1.2.5): zlib125.zip sources of zlib
- Скачать и установить gui-CMake
источник:
http://www.cmake.org/cmake/resources/software.htmlфайл: Windows (Win32 Installer) cmake-2.8.12-win32-x86.exe
- В source code выбрать источник D:/qzip/zlib-1.2.5
- Создать пустую директорию для выодных файлов D:/qzip/zlib-1.2.5/pc_vs2008
- В were to buind выбрать директорию выодных файлов D:/qzip/zlib-1.2.5/pc_vs2008
- Нажать Configure, выбрать IDE-VS2008-к примеру и SDK
- если попросит CMake Error at CMakeLists.txt:65 (message):
You must remove D:/qzip/Test2/zlib-1.2.5/zconf.h from the source tree., то удалить zconf.h
- После успешного результата надать Generate, и в .../pc_vs2008 окажутся файлы проекта для IDE
(например для VS2008)
- В IDE (например для VS2008) открыть проект из .../pc_vs2008, выбрать dll или lib и собрать его
2) Собрать quazip:
скачать последнюю версию (
http://sourceforge.net/projects/quazip/) quazip-0-5-1
собрать так-же как и zlib
3) В VS2008 cделать решение с проектом testzip QT и подключить к этому решению проекты quazip и zlib
4) Настроить проект zlib как .lib
5) Проверить работу можно используя следующий код (main.cpp в testzip):
#include "testzip.h"
#include <QtGui/QApplication>
#include <QFile>
#include <quazip/quazip.h>
#include <quazip/QuaZipFile.h>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QuaZip zip("d:\\02a.zip");
zip.open(QuaZip::mdUnzip);
QuaZipFile file(&zip);
for(bool f=zip.goToFirstFile(); f; f=zip.goToNextFile()) {
file.open(QIODevice::ReadOnly);
//same functionality as QIODevice::readData() -- data is a char*, maxSize is qint64
//file.readData(data.data(),data.size());
//static_cast<QIODevice*>(&file)->readData(data2,200);
//do something with the data
qDebug() << file.getActualFileName();
file.close();
}
zip.close();
return a.exec();
}