apLib的使用

标 题: 【讨论】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 次下载)


阅读更多
上一篇VC DLL远程进程注入
下一篇DragAcceptFiles 拖放文件到多文档框架上
想对作者说点什么? 我来说一句

OpenGL 库文件

2013年05月29日 1.04MB 下载

aPlib 0.44

2009年02月28日 196KB 下载

aPLib v0.42压缩引擎

2012年09月07日 185KB 下载

aPLib v0.43压缩引擎

2012年09月07日 196KB 下载

c++加密压缩壳

2017年12月26日 19.03MB 下载

没有更多推荐了,返回首页

关闭
关闭