如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
LZMA模块使用本模块提供LZMA加密-解密是否线程安全是使用方法1)用户自己提供缓冲区#include"../Release/LZMA.h"#include<string>usingnamespacestd;intmain(intargc,char*argv[]){unsignedchartemp1[150];unsignedchartemp2[150];JHCommonLib::LZMA*lzma=JHCommonLib::LZMA::newInstance();strings="abcdefghijklmnopqrstuvwxyz0123456789这是一次测试";size_tout_len1=0;size_tout_len2=0;//输入时:out_len1为缓冲区temp1的长度//输出时:out_len1为压缩后数据的长度//temp1中为压缩后的数据out_len1=150;boolre=lzma->compress((constunsignedchar*)s.c_str(),s.length(),temp1,&out_len1);//输入时:out_len2为缓冲区temp2的长度//输出时:out_len2为解压缩后数据的长度//temp2中为解压缩后的数据out_len2=150;re=lzma->decompress(temp1,out_len1,temp2,&out_len2);deletelzma;return0;}2)使用模块提供的缓冲区(实现中不存在频繁的new和delete)#include"../Release/LZMA.h"#include<string>usingnamespacestd;intmain(intargc,char*argv[]){LZMA*lzma=LZMA::newInstance(2);strings="abcdefghijklmnopqrstuvwxyz0123456789";intbuff_id1=0;intbuff_id2=0;size_tout_len1=0;size_tout_len2=0;//out_len1为压缩后返回压缩数据的长度//buff_id1为缓冲区的id,当使用完temp1后解锁缓冲区时需要此值constunsignedchar*temp1=lzma->compress((constunsignedchar*)s.c_str(),s.length(),&out_len1,&buff_id1);if(0==temp1){printf(lzma->getLastError());return0;}//out_len2为解压缩后返回的数据的长度//buff_id1为缓冲区的id,当使用完temp2后解锁缓冲区时需要此值constunsignedchar*temp2=lzma->decompress(temp1,out_len1,&out_len2,&buff_id2);if(0==temp2){lzma->unlockBuffer(buff_id1);printf(lzma->getLastError());return0;}lzma->unlockBuffer(buff_id1);//解锁缓冲区temp1,至此temp1不能够再被使用lzma->unlockBuffer(buff_id2);//解锁缓冲区temp2,至此temp2不能够再被使用deletelzma;return0;}