Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5098 | clevermous | 1 | #include |
2 | #include |
||
3 | extern "C" __stdcall lzma_set_dict_size(unsigned logdictsize); |
||
4 | extern "C" __stdcall lzma_compress( |
||
5 | const void* source, |
||
6 | void* destination, |
||
7 | unsigned length, |
||
8 | void* workmem); |
||
9 | |||
10 | int main() |
||
11 | { |
||
12 | FILE* f; |
||
13 | f = fopen("test.in","rb"); |
||
14 | fseek(f,0,SEEK_END); |
||
15 | unsigned inlen = ftell(f); |
||
16 | fseek(f,0,SEEK_SET); |
||
17 | void* in = VirtualAlloc(NULL,inlen,MEM_COMMIT,PAGE_READWRITE); |
||
18 | void* out = VirtualAlloc(NULL,inlen,MEM_COMMIT,PAGE_READWRITE); |
||
19 | fread(in,1,inlen,f); |
||
20 | fclose(f); |
||
21 | unsigned logdictsize,dictsize; |
||
22 | for (logdictsize=0,dictsize=1;dictsize |
||
23 | lzma_set_dict_size(logdictsize); |
||
24 | void* work = VirtualAlloc(NULL,dictsize*19/2+0x509000,MEM_COMMIT,PAGE_READWRITE); |
||
25 | unsigned outlen = lzma_compress(in,out,inlen,work); |
||
26 | printf("%d -> %d\n",inlen,outlen); |
||
27 | f = fopen("test.out","wb"); |
||
28 | fwrite(out,1,outlen,f); |
||
29 | fclose(f); |
||
30 | return 0; |
||
31 | }=1)><=1)>=28;logdictsize++,dictsize<<=1)> |