apLib的使用

转载 2013年12月02日 14:21:41
标 题: 【讨论】apLib的使用
作 者: 小驹
时 间: 2011-03-25,20:30:05
链 接: http://bbs.pediy.com/showthread.php?t=131361


看了这个使用apLib的帖子,很有感触http://bbs.pediy.com/showthread.php?t=94815,把几个常用的apLib的函数整理了一下,高手飘过,基础的东西。。。。
压缩过程:
1.调用aP_max_packed_size得到存放压缩文件的空间大小
2.调用aP_workmem_size得到工作空间大小 
3.调用aPsafe_pack
5.WirteFile写入文件

解压过程:
1.调用aPsafe_get_orig_size得到解压后文件大小 
2.调用aPsafe_depack解压
3.WirteFile写入解压后的文件 
——————————————————————————————————
常用函数解析:
size_t aP_max_packed_size( size_t input_size )
参数:未压缩的数据大小
返回值:压缩后的数据可能的所需要的最大值
Computes the maximum possible compressed size possible when 

compressing input_size bytes of incompressible data.

size_t aP_workmem_size( size_t input_size )
计算aP_pack函数所需要的workmem[] buffer的大小 
参数:未压缩的数据的字节数
返回值: work buffer所需要的空间长度,总是返回 640k (640*1024).


size_t aPsafe_pack( const void *source,
                    void *destination,
                    size_t length,
                    void *workmem,
                    int (*callback)(size_t, size_t, size_t, void *),
                    void *cbparam )
函数aP_pack的封装函数,添加了一个头部,头部包含了原始数据的大小

和原始数据的CRC检验值
参数: 
source - 指向被压缩数据的指针
destination - 存储压缩数据的指针.
length - 原始数据(未压缩数据)的字节数.
workmem - 压缩时指向工作空间的指针
callback - 回调函数的指针,也可以为NULL
cbparam - 回调函数的参数

返回值: 
成功返回压缩后数据的字节数,失败返回APLIB_ERROR
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>






size_t aPsafe_get_orig_size( const void *source )
返回解压后数据的长度
参数:
source -被压缩的数据的指针

返回值: 
成功解压后的数据长度,失败APLIB_ERROR




size_t aPsafe_depack( const void *source,
                      size_t srclen,
                      void *destination,
                      size_t dstlen )
 函数aP_depack_asm_safe的封装函数,函数检查压缩数据的CRC32校验值
参数: 
source - 指向压缩后数据的指针
srclen - 压缩后的数据的字节数
destination - 解压后的数据存放空间的指针
dstlen - 解压后数据的字节数

返回值: 
成功返回解压后的数据大小 ,错误返回APLIB_ERROR


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

具体的实例还是看:http://bbs.pediy.com/showthread.php?t=94815

附件为apLib的使用说明,头文件,库文件。。 
上传的附件
文件类型: zip aPLib-1.01.zip (237.9 KB, 199 次下载)


Preference的使用(3) --- 子类的使用

EditTextPreference && ListPreference && MultiSelectListPreference  都jic
  • hewence1
  • hewence1
  • 2014年11月21日 14:27
  • 3554

jQuery-easyUI的使用:tree的使用

String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServ...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2015年11月02日 08:26
  • 1748

logback和slf4j的使用之appender使用

一、 1.appender标签是logback配置文件中重要的组件之一。在logback配置文件中使用appender标签进行定义。可以 包含0个或多个appender标签。 2.appender标签...
  • cw_hello1
  • cw_hello1
  • 2016年07月19日 18:28
  • 3316

aPLib v0.43压缩引擎

  • 2012年09月07日 10:43
  • 196KB
  • 下载

aPLib v0.42压缩引擎

  • 2012年09月07日 10:42
  • 185KB
  • 下载

壳压缩引擎源码 aplib.lib

  • 2012年10月27日 10:50
  • 405KB
  • 下载

aPlib 0.44

  • 2009年02月28日 18:23
  • 196KB
  • 下载

HK-3C型台式精密酸度计使用说明书V30_08.02.02

  • 2018年01月14日 20:32
  • 658KB
  • 下载

使用jsp+servlet+mysql+tomcat的java web,很简单,只是一个流程,供大家参考

  • 2018年01月14日 22:32
  • 566KB
  • 下载

CheckBox+ListView混合使用,并缓存

  • 2018年01月15日 16:26
  • 365KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:apLib的使用
举报原因:
原因补充:

(最多只允许输入30个字)