zlib解压数据,应该怎么解压?

aCracker aCracker 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有一个二进制文件,40字节以后的数据需要用zlib进行解压。我把这个文件readfile到一个buffer中,然后调用zlib中的解压函数进行解压,结果解压出来是空的。


CString str=_T(""); // 全部内容
CStdioFile file; // 文件对象

if(!file.Open("D:\\1.W3G",CFile::modeRead | CFile::typeBinary,NULL))
{
//CString strTemp;
//strTemp.Format(_T("Open file error:%d"),GetLastError());
//MessageBox(strTemp);
// return false;
}
int len = file.GetLength()+1;

unsigned char szStr[1024] = {0};
file.Read(szStr,file.GetLength());


file.Flush();
file.Close();



CString strc,strc2,strc3;
const unsigned char strSrc[] = "English test\n中文测试";
unsigned char buff[1024] = {0},strDst[1024] = {0};

memcpy(buff,szStr+50,400);
//解压缩
uncompress(strDst, &dstLen, buff, bufLen);
strc3.Format("\nAfter UnCompressed Length:%d\nUnCompressed String:%s\n", dstLen, strDst);


...全文

相关推荐

swift-数据请求GZip数据压缩和解压缩问题

数据请求 GZip数据压缩和解压缩问题

weixin_39841848

VC++使用zlib压缩及解压数据,使用base64编码及解码数据(附源码)

使用zlib压缩及解压数据,使用base64编码及解码数据。

dvlinker

PHP zlib扩展实现页面GZIP压缩输出

要实现GZIP压缩页面需要浏览器和服务器共同支持,实际上就是服务器压缩,传到浏览器后浏览器解压并解析。浏览器那边不需要我们担心,因为现在绝大多数浏览器都支持解析GZIP过的页面。我们只要把页面在服务器端压缩再输出到浏览器就行了。 有点罗嗦,下面说正事: 正如要制作压缩饼干,先要拿到原料,要压缩一个页面,首先要获得要输出的内容。PHP中的ob_start()(ob => output buffer)函数可以实现这个功能,它可以把程序里准备输出的内容先放到一个叫做“缓冲区”的地方,当然,你可以理解为制作压缩饼干的暂时放原料的工作台。 这个函数一定要在页面输出之前使用,所以一般把它放在代码的最顶端。

weixin_38536716

PHP中的gzcompress、gzdeflate、gzencode函数详解

PHP中存在一组看起来很像的压缩解压函数: 压缩函数:gzcompress gzdeflate gzencode 解压函数:gzuncompress gzinflate gzdecode gzdecode是PHP 5.4.0之后才加入的,使用的时候要注意兼容性问题。 这几个函数都以gz开头,让人想到gzip压缩,而光看函数名却又看不出它们之间的区别,只能查文档。 gzcompress gzdeflate gzencode函数的区别在于它们压缩的数据格式不同: gzcompress使用的是ZLIB格式; gzdeflate使用的是纯粹的DEFLATE格式; gzencode使用的是GZIP格式;

weixin_38621427

Linux下PHP及组件的安装

Linux下PHP及组件的安装,详细说明及步骤

mawentao5367519
评论 8
收藏 已收藏
分享
返回顶部
aCracker
VC/MFC 16,550 成员 421,606 内容