根据http://zlib.net/新闻,当前版本是 1.2.8,可下载为 x32 和 x64 objs。
目前我在机器上有古老版本的 Delphi。我正在尝试用它做一些事情并编译我的旧项目。
我正处于恢复/重新安装/所有以前使用的组件的阶段,重新检查演示和示例以刷新内存或技能(几年没有 IDE)。
在安装不同组件的过程中,我从 IDE 收到如下警告:
无法加载包含单元“zlib”的包“dcliteXX”,该单元也包含在包 DelphiXV0 中。您想在下次加载项目时尝试加载此包吗?
然后我在整个 /AddComponents 目录中进行文件搜索并找到:
- ICS 套件,zlib 1.2.3(最新的),在 zlib.pas /icsZlibObj 中链接的 OBJ
obj 的:deflate、inflate、inftrees、adler32、infblock、infcodes、infutil、inffast 也在 /OBJ 目录中 文件:uncompress、compress、crc32、gzio、zutil
仅限 DelphiX/DirectX zlib.dcu 1.1.3
hicomponents zlib.dcu 1.1.3
codebot,两个pas文件链接objs:
BareZLib 使用来自 /zlib 的 1.0.4,
{$L ZLIB\DEFLATE.OBJ}
{$L ZLIB\INFLATE.OBJ}
{$L ZLIB\INFTREES.OBJ}
{$L ZLIB\TREES.OBJ}
{$L ZLIB\ADLER32.OBJ}
{$L ZLIB\INFBLOCK.OBJ}
{$L ZLIB\INFCODES.OBJ}
{$L ZLIB\INFUTIL.OBJ}
{$L ZLIB\INFFAST.OBJ}
BarePNG/pngzlib 使用来自 /imgzlib 的 1.1.4
相同的一组 objs 但不同的版本。
- Internet Professional Components zlib.pas for 1.1.3
同一组 objs + zlib C 源代码。
TinyDB ZlibUnit.dcu - 1.1.3,+ Pascal 版本的 Zlib 源
JEDI 版本 1.104 JCL zlibh.dcu 1.2.3
VGVCL 单元 vgZLib 使用 zlib,目前是 1.1.3
IDE /lib/zlib.dcu 是 1.0.4 :D
很乱
来自 zlib.net 的 zlib 包具有 win32 objs:
放气, 充气, inftrees, 树, adler32,
infback、infast 和... 压缩、crc32。
和 ZlibEx.pas、ZlibExAPI.pas、ZlibExGZ.pas
我一开始就想:我可以将新的 *.obj 复制到组件的 /implobj 目录并重建包以刷新其 *.bpl、*.dcp 包
但是 - 我对失踪感到困惑
{$L ZLIB\INFBLOCK.OBJ}
{$L ZLIB\INFCODES.OBJ}
{$L ZLIB\INFUTIL.OBJ}
在当前的 zlib_archive 中。
第二个想法,如果我操纵我的 {Delphi}/lib 路径并使用组件路径将最新的 zlib 放在高处,所有编译的项目和重建包都会得到新的 zlib.dcu。/需要测试他们会工作/
第三个想法-也许我将所有组件单元声明从 Zlib 更改为 ZlibEx,这样所有新编译的二进制文件都会获得当前的 zlib 实现/二进制文件。
还有一个疑问——为什么不能将链接的 obj 统一到 zlib/pngzlib 单元?如果是,如何确保 png 组件适用于新的 Zlib 版本?