标 题:
【讨论】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的使用说明,头文件,库文件。。 |
apLib的使用
最新推荐文章于 2022-04-12 12:51:07 发布