📄 dzlib.txt
字号:
The Delphi 3 CD-ROM contains in \INFO\EXTRAS\ZLIB a zlib unit that implements
the TCompressionStream and TDecompressionStream classes. With some changes to
this unit you can implement the same functionality using Paszlib. I can not
publish the modified file (Copyright 1997 by Borland International), but this
document tells you how to make the changes by hand.
1. zlib.pas conflicts to a Paszlib unit name, change the name to dzlib.pas.
< unit dzlib;
---
> unit zlib;
2. Add zlib to the uses clause:
< uses zlib, Sysutils, Classes;
---
> uses Sysutils, Classes;
3. Change the type declarations for TAlloc, TFree and TZStreamRec to
< TAlloc = alloc_func;
< TFree = free_func;
< TZStreamRec = z_stream;
4. Remove the zlib_Version const.
> const
> zlib_Version = '1.0.4';
5. In the implementation part, add the following uses clause
< uses
< zutil, zDeflate, zInflate;
6. remove all Z_xxx const, {$L xxx} and all external procedures up to
(and including) the inflateReset() function and the _memset and _memcpy
procedure definitions.
7. for compatibility with D1 you should change the type of the "Size"
parameter of the zlibAllocMem() function from Integer to Cardinal
and all comments of the // form into the {} form.
8. Now, make the following changes, so that the dzlib can compile, you
can then use the modified unit dzlib in the test.pas source.
185c293
< CCheck(deflateInit_(@strm, Z_BEST_COMPRESSION, zlib_version, sizeof(strm)));
---
> CCheck(deflateInit_(strm, Z_BEST_COMPRESSION, zlib_version, sizeof(strm)));
192c300
< strm.next_out := pBytef(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
---
> strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
228c336
< DCheck(inflateInit_(@strm, zlib_version, sizeof(strm)));
---
> DCheck(inflateInit_(strm, zlib_version, sizeof(strm)));
235c343
< strm.next_out := pBytef(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
---
> strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
250c358
276c384
< FZRec.next_out := @FBuffer;
---
> FZRec.next_out := FBuffer;
278c386
< CCheck(deflateInit_(@FZRec, Levels[CompressionLevel], zlib_version, sizeof(FZRec)));
---
> CCheck(deflateInit_(FZRec, Levels[CompressionLevel], zlib_version, sizeof(FZRec)));
291c399
< FZRec.next_out := @FBuffer;
---
> FZRec.next_out := FBuffer;
318c426
< FZRec.next_out := @FBuffer;
---
> FZRec.next_out := FBuffer;
344c452
< FZRec.next_in := @FBuffer;
---
> FZRec.next_in := FBuffer;
351c459
< DCheck(inflateInit_(@FZRec, zlib_version, sizeof(FZRec)));
---
> DCheck(inflateInit_(FZRec, zlib_version, sizeof(FZRec)));
375c483
< FZRec.next_in := @FBuffer;
---
> FZRec.next_in := FBuffer;
397c505
< FZRec.next_in := @FBuffer;
---
> FZRec.next_in := FBuffer;
Jacques Nomssi Nzali <nomssi@physik.tu-chemnitz.de> [17.6.1998]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -