首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Qt 4.8 解壓 ZIP:放棄 QuaZip 改用 zlib 直接調用

     編輯:程式設計疑難解答

背景

QuaZip 多基於 Qt5,移植到 Qt 4.8 + VS2008 易發生段錯誤(內存佈局不兼容)。

替代方案:zlib + minizip

  1. 下載 zlib 源碼,編譯生成 zdll.lib / zlib.dll
  2. 使用 minizip(zlib/contrib/minizip)中的 unzip.h/c ioapi.h/c
  3. 在 .pro 中添加 LIBS += -lzlib INCLUDEPATH += $$PWD/zlib

核心調用

unzFile uf = unzOpen("file.zip");
unzGoToFirstFile(uf);
do {
    unz_file_info info;
    char filename[256];
    unzGetCurrentFileInfo(uf, &info, filename, sizeof(filename), NULL, 0, NULL, 0);
    unzOpenCurrentFile(uf);
    // 讀取寫入磁盤
    unzCloseCurrentFile(uf);
} while (unzGoToNextFile(uf) == UNZ_OK);
unzClose(uf);

參考教程

CSDN:Qt調用zlib解壓zip文件詳解

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved