点击下载独立的dll

//dll内部封装API格式

//gzip
BOOL fnZlibDecompressPacket
(__IN_PARAM unsigned char* gZlibDataBuffer,
 __IN_PARAM size_t gZLibDataLength,
__OUT_PARAM char* pChDataBuffer,
__OUT_PARAM DWORD *pdwLength); BOOL fnZlibCompressPacket
(__IN_PARAM unsigned char* gZlibDataBuffer,
__IN_PARAM size_t gZLibDataLength,
__OUT_PARAM char * pchGzipOutData,
__OUT_PARAM DWORD *pdwLength); //zlib BOOL fnGzipDecompressPacket
(__IN_PARAM unsigned char* gzipDataBuffer,
__IN_PARAM size_t gzipDataBuffer_Length,
 __OUT_PARAM char* pChDataBuffer,
__OUT_PARAM DWORD *pdwLength); BOOL fnGzipCompressPacket
(__IN_PARAM const char * gzipDataBuffer,
__IN_PARAM int gzipDataBuffer_Length,
__OUT_PARAM char * dstDataBuffer,
__OUT_PARAM int *pdwLength);

//GZIP调用核心代码演示

typedef  BOOL   (*UncompressionGzipPacketToBuffer)
(unsigned char* gZipDataBuffer, size_t gZipDataLength, char * pDataBuffer,DWORD *dwLength); typedef BOOL (*CompressionBufferPacketToGzip)
( unsigned char* chDataBuffer, size_t chDataLength, char* pGzipBuffer,DWORD *dwLength); HINSTANCE hInst=NULL; UncompressionGzipPacketToBuffer UngzipPacket; CompressionBufferPacketToGzip ComGzipBuffer; hInst=LoadLibrary(_T("GzipZlibdll.dll")); if (hInst==NULL)
{
return -1;
}
UngzipPacket=(UncompressionGzipPacketToBuffer)GetProcAddress(hInst,"fnGzipDecompressPacket"); ComGzipBuffer=(CompressionBufferPacketToGzip)GetProcAddress(hInst,"fnGzipCompressPacket"); if (UngzipPacket==NULL)
{
return -1;
}
if (ComGzipBuffer==NULL)
{
return -1; } BOOL bRet=UngzipPacket((unsigned char*)pChGzipBuff,dwReaded,pChDataBuff,&dwTransferSize); //注意此处dwGzipSize的必须有值,不能传递0考虑到压缩之后一定比原来数据小。传递dwTransferSize大小就可以 BOOL bReturn=ComGzipBuffer((unsigned char*)pChDataBuff,dwTransferSize,pChGzipBuff,&dwGzipSize); FreeLibrary(hInst);

//zlib同上演示样例。

web服务交互中HTTP数据内容GZIP,ZLIB格式压缩与解压缩封装(共享)的更多相关文章

  1. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  2. PHP批量替换MySql数据库中的数据内容(替换MySql数据库内容源码)

    PHP批量替换MySql数据库内容 UTF-8 1.0版 <?php //声明 //1.本源码开发意图:作者在使用一些CMS建站的时候发现很多CMS把网址写入到数据库了,如果换网址,那么就需要更 ...

  3. IIS Web服务扩展中添加ASP.NET4.0

    问题 服务器上安装了ASP.NET 4.0.30319组件,但是在IIS的Web服务扩展中并没有找到ASP.NET v4.0.30319这项,这导致基于.NET4.0开发的网页都无法正常浏览(404错 ...

  4. IIS Web服务扩展中没有Asp.net 2.0

    服务器上安装了ASP.NET v2.0组件,但是在IIS的Web服务扩展中并没有找到ASP.NET v2.050727这项,这导致基于.NET2.0开发的网页都无法正常浏览. 解决方法:打开IIS,转 ...

  5. PHP批量替换MySql数据库中的数据内容

    <?php //替换数据库内容类 class replace{ public $dbAddress; //数据库地址 public $dbUser; //数据库用户名 public $dbPwd ...

  6. DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)

    /// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...

  7. 032 搭建搜索微服务01----向ElasticSearch中导入数据--通过Feign实现微服务之间的相互调用

    1.创建搜索服务 创建module: Pom文件: <?xml version="1.0" encoding="UTF-8"?> <proje ...

  8. Android 开发之开发插件使用:Eclipse 插件 SQLiteManger eclipse中查看数据内容--翻译

    最近研究了一段时间Android开发后发现,google自带的ADT工具,缺失一些开发常用的东西,希望可以构建一个类似使用JAVA EE开发体系一样开发的工具包集合,包括前台开发,调试,到后台数据库的 ...

  9. 【Python + Selenium断言】之如何获取定位Web页面列表中的数据

    如下图所示: 当定位元素时,我想获取指定的某一列的某一行的断言,如图我只想获取jiancha1的值,有同学会说:直接定位不就好了.但是我们知道,列表的数据会时刻变动的,不能靠定死的路径,那该怎么办呢? ...

随机推荐

  1. SQL利用临时表实现动态列、动态添加列

    --方法一--------------------------------------------------------------------- declare @sql as varchar(1 ...

  2. Knockoutjs官网翻译系列(一)

    最近马上要开始一个新项目的研发,作为第一次mvvm应用的尝试,我决定使用knockoutjs框架.作为学习的开始就从官网的Document翻译开始吧,这样会增加印象并加入自己的思考,说是翻译也并不是纯 ...

  3. Extjs中Chart利用series的tips属性设置鼠标划过时显示数据

    效果如下: 从官网找到的例子,大家参考下吧.源码: Ext.require('Ext.chart.*'); Ext.require('Ext.layout.container.Fit'); Ext.o ...

  4. PHP文件系统概述

    >> 本文固定链接: http://php.ncong.com/php_course/file/wenjianxitong.html >> 转载请注明: 恩聪php 2014年 ...

  5. JavaScript 学习-变量的作用域和块级作用域

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. rename 后缀

    for file in $(find . -name "*.del" -type f);do mv "$file" "${file%.del}&quo ...

  7. NSIndexSet-入门浅析

    NSIndexSet-入门浅析   记得上一次,用到,关于删除UITableView分组的方法 [tableView deleteSections:[NSIndexSet indexSetWithIn ...

  8. iPhone 被同步到 Mac上后 如果不希望更新到Mac上在哪里删除?

    前往文件夹   /Users/用户名/Library/Application Support/MobileSync  直接删除  就行了(同时要倾倒废纸篓). 目前iPhone链接Mac 后  不让 ...

  9. android host

    74.125.20.31 market.android.com 74.125.20.31 developer.android.com 74.125.20.31 android.googlesource ...

  10. android 程序中res/values-v14/styles.xml报错的解决办法

    从旧的ADT迁移的新的ADT时, android 程序中res/values-v14/styles.xml报错: error: Error retrieving parent for item: No ...