Subversion Repositories Kolibri OS

Rev

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
}