在搜索如何轻松(没有任何dll,...)在C ++中解压缩时,我来到了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);