⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dzlib.txt

📁 zlib pascal语言源码
💻 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 + -