Ok, in TLHInflate fehlt wirklich die Deklaration von Chars.
Mache mal folgendes:
1. schmeiße PLHInflate/TLHInflate komplett aus dem Source raus
2. in LHDecode benutzt du nun SizeOf(TLHData) statt TLHInflate
so kostet es bei LHDecode() nur par zusätzlich allozierte Bytes im dynamischen Speicher die dann ungenutzt wären, also alle Felder in TLLHData ab .Head[].
Ich hätte gleich Abstand von der Idee nehmen sollen mit zwei fast identischen Records zu arbeiten und statt dessen mit einer Union arbeiten sollen.
Und dann noch
Delphi-Quellcode:
{$IFOPT O+}
{$DEFINE UseASM}
{$ENDIF}
abändern in
Delphi-Quellcode:
{$IFOPT O+}
{$DEFINE _UseASM}
{$ENDIF}
Das deaktiviert permanet die Verwendung des Assembler Codes und stattdessen wird pure PASCAL Source compiliert. Hat natürlich den Nachteil das der Compiler ineffizienteren Code erzeugt, also mehr Code verbraucht und langsammer ist.
Gruß Hagen