C++-Zip Utils从内存解压缩到内存

C++ - Zip Utils unzipping from memory to memory

本文关键字:内存 解压缩 Utils C++-Zip      更新时间:2023-10-16

在搜索如何在C++中轻松(无需任何dll…)解压缩时,我找到了Zip-Utils。

我从服务器下载数据(使用gzencode()在PHP中压缩)到本地缓冲区,现在我想使用Zip-Utils或其他东西来解压缩它。

假设我有:

char zipped[100000];
char unzipped[100000];

现在我想将数据从一个缓冲区解压缩到另一个缓冲区时,我到底该如何使用Zip-Utils来做到这一点?

编辑:我试过拉开自己的拉链,但我无法让它发挥作用。以下是我如何尝试的一个例子。

 HZIP hz = OpenZip(zipped, sizeof zipped, "");
            char buf[1024]; ZRESULT zr = ZR_MORE; unsigned long totsize = 0;
            while (zr == ZR_MORE)
            {
                ZIPENTRY ze; GetZipItem(hz, 0, &ze);
                zr = UnzipItem(hz, 0, unzipped, sizeof unzipped);
                unsigned long bufsize = 1024; if (zr == ZR_OK) bufsize = ze.unc_size - totsize;
                    totsize += bufsize;
            }
            CloseZip(hz);

我已经成功地使用本页上提供的源代码解决了我的问题

这可能是我见过的最简单的代码,而且它完美地工作!