Verwendung von Minilzo in delphi
So verwenden die MiniLZO-Bibliothek in der Delphi-Anwendung ohne eine Dll in ANSI C geschrieben
Einführung
LZO ist eine verlustfreie Komprimierung-Algorithmus, der extrem schnellen Dekompression Geschwindigkeit bietet und gibt Ihnen eine angemessene Verdichtung. Ich habe gelesen, dass LZO doppelt so schnell ist wie ZLib bei dekomprimierenden Weile haben nur etwa 5 % weniger Kompressionsverhältnis.
miniLZO
Ist eine Bibliothek des Autors der LZO, die LZO1X_1 Kompression und Dekompression der LZO1x enthält. Ich habe es in eine OBJ-Datei, die in einer Delphi-Einheit mit Hilfe der {$LINK} verknüpft werden kann kompiliert / {$L} Compiler-Direktive. Nachfolgend finden Sie die komplette Einheit. MiniLZO wird unter der GNU Public License vertrieben so natürlich diesen Code GNU auch lizenziert ist. Hinweis Ausführliche Anweisungen zur Verwendung dieser Funktionen bitte besuchen Sie die offizielle Homepage der LZO in https://www.oberhumer.com/opensource/lzo/.
//------------------------- BEGIN UNIT -------------------------//
Einheit Lzo;
Schnittstelle
'C'-Routinen, die von der verknüpfte LZO OBJ-Datei benötigt
Funktion _memcmp (s1, s2: Pointer; NumBytes: LongWord): Integer; Cdecl;
Prozedur _memcpy (s1, s2: Pointer; n: Integer); Cdecl;
Prozedur _memmove (DstP, SrcP: Zeiger; NumBytes: LongWord); Cdecl;
Prozedur _memset (s: Zeiger, c: Byte, n: Integer); Cdecl;
{$LINK 'minilzo.obj'}
Funktion lzo1x_1_compress (const Quelle: Pointer; SourceLength: LongWord; Dest: Pointer; var DestLength: LongWord; WorkMem: Pointer): Integer; StdCall; externe;
Funktion lzo1x_decompress (const Quelle: Pointer; SourceLength: LongWord; Dest: Pointer; var DestLength: LongWord; WorkMem: Zeiger (* nicht verwendet! *)): Integer; StdCall; externe;
Funktion lzo1x_decompress_safe (const Quelle: Pointer; SourceLength: LongWord; Dest: Pointer; var DestLength: LongWord; WorkMem: Zeiger (* nicht verwendet! *)): Integer; StdCall; externe;
Funktion lzo_adler32 (Adler: LongWord; const Buf: Zeiger; Len: LongWord): LongWord; StdCall; externe;
Funktion Lzo_version: Wort; StdCall; externe;
Funktion Lzo_version_string: PChar; StdCall; externe;
Funktion Lzo_version_date: PChar; StdCall; externe;
Umsetzung
Prozedur _memset (s: Zeiger, c: Byte, n: Integer); Cdecl;
beginnen
FillChar (s ^, n, C);
Ende;
Prozedur _memcpy (s1, s2: Pointer; n: Integer); Cdecl;
beginnen
Verschieben (s2 ^, s1 ^, n);
Ende;
Funktion _memcmp (s1, s2: Pointer; NumBytes: LongWord): Integer; Cdecl;
var
i: Ganzzahl;
P1, p2: ^ Byte;
beginnen
P1: = s1;
P2: = s2;
für ich: = NumBytes-1 0 zu tun
beginnen
Wenn p1 ^ <> p2 ^ dann
beginnen
Wenn p1 ^ < p2 ^ dann
Ergebnis: =-1
sonst
Ergebnis: = 1;
Ausfahrt;
end;
Inc(P1);
Inc(P2);
end;
Ergebnis: = 0;
Ende;
Prozedur _memmove (DstP, SrcP: Zeiger; NumBytes: LongWord); Cdecl;
beginnen
Verschieben (SrcP ^, DstP ^, NumBytes);
FreeMem (SrcP, NumBytes);
Ende;
Ende.
//------------------------- END UNIT -------------------------//
Die C-MiniLZO-Quelle, minilzo.obj und diese Einheit können Downloade hier sein.
Das ist es! Ich entschuldigen für meine manchmal schlechte Englisch und Schreiben-Stil.
Verwendung von Minilzo in delphi
Verwendung von Minilzo in delphi : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
So verwenden die MiniLZO-Bibliothek in der Delphi-Anwendung ohne eine Dll in ANSI C geschrieben
Einführung
LZO ist eine verlustfreie Komprimierung-Algorithmus, der extrem schnellen Dekompression Geschwindigkeit bietet und gibt Ihnen eine angemessene Verdichtung. Ich habe gelesen, dass LZO doppelt so schnell ist wie ZLib bei dekomprimierenden Weile haben nur etwa 5 % weniger Kompressionsverhältnis.
miniLZO
Ist eine Bibliothek des Autors der LZO, die LZO1X_1 Kompression und Dekompression der LZO1x enthält. Ich habe es in eine OBJ-Datei, die in einer Delphi-Einheit mit Hilfe der {$LINK} verknüpft werden kann kompiliert / {$L} Compiler-Direktive. Nachfolgend finden Sie die komplette Einheit. MiniLZO wird unter der GNU Public License vertrieben so natürlich diesen Code GNU auch lizenziert ist. Hinweis Ausführliche Anweisungen zur Verwendung dieser Funktionen bitte besuchen Sie die offizielle Homepage der LZO in https://www.oberhumer.com/opensource/lzo/.
//------------------------- BEGIN UNIT -------------------------//
Einheit Lzo;
Schnittstelle
'C'-Routinen, die von der verknüpfte LZO OBJ-Datei benötigt
Funktion _memcmp (s1, s2: Pointer; NumBytes: LongWord): Integer; Cdecl;
Prozedur _memcpy (s1, s2: Pointer; n: Integer); Cdecl;
Prozedur _memmove (DstP, SrcP: Zeiger; NumBytes: LongWord); Cdecl;
Prozedur _memset (s: Zeiger, c: Byte, n: Integer); Cdecl;
{$LINK 'minilzo.obj'}
Funktion lzo1x_1_compress (const Quelle: Pointer; SourceLength: LongWord; Dest: Pointer; var DestLength: LongWord; WorkMem: Pointer): Integer; StdCall; externe;
Funktion lzo1x_decompress (const Quelle: Pointer; SourceLength: LongWord; Dest: Pointer; var DestLength: LongWord; WorkMem: Zeiger (* nicht verwendet! *)): Integer; StdCall; externe;
Funktion lzo1x_decompress_safe (const Quelle: Pointer; SourceLength: LongWord; Dest: Pointer; var DestLength: LongWord; WorkMem: Zeiger (* nicht verwendet! *)): Integer; StdCall; externe;
Funktion lzo_adler32 (Adler: LongWord; const Buf: Zeiger; Len: LongWord): LongWord; StdCall; externe;
Funktion Lzo_version: Wort; StdCall; externe;
Funktion Lzo_version_string: PChar; StdCall; externe;
Funktion Lzo_version_date: PChar; StdCall; externe;
Umsetzung
Prozedur _memset (s: Zeiger, c: Byte, n: Integer); Cdecl;
beginnen
FillChar (s ^, n, C);
Ende;
Prozedur _memcpy (s1, s2: Pointer; n: Integer); Cdecl;
beginnen
Verschieben (s2 ^, s1 ^, n);
Ende;
Funktion _memcmp (s1, s2: Pointer; NumBytes: LongWord): Integer; Cdecl;
var
i: Ganzzahl;
P1, p2: ^ Byte;
beginnen
P1: = s1;
P2: = s2;
für ich: = NumBytes-1 0 zu tun
beginnen
Wenn p1 ^ <> p2 ^ dann
beginnen
Wenn p1 ^ < p2 ^ dann
Ergebnis: =-1
sonst
Ergebnis: = 1;
Ausfahrt;
end;
Inc(P1);
Inc(P2);
end;
Ergebnis: = 0;
Ende;
Prozedur _memmove (DstP, SrcP: Zeiger; NumBytes: LongWord); Cdecl;
beginnen
Verschieben (SrcP ^, DstP ^, NumBytes);
FreeMem (SrcP, NumBytes);
Ende;
Ende.
//------------------------- END UNIT -------------------------//
Die C-MiniLZO-Quelle, minilzo.obj und diese Einheit können Downloade hier sein.
Das ist es! Ich entschuldigen für meine manchmal schlechte Englisch und Schreiben-Stil.
Verwendung von Minilzo in delphi
By Wiezutun
Verwendung von Minilzo in delphi : Mehreren tausend Tipps, um Ihr Leben einfacher machen.