如何在Delphi中正确升级Zlib&;组件?
据新闻报道,目前的版本是1.2.8 可作为x32和x64 objs下载 目前我在机器上有Delphi的古老版本。 我正试图用它做点什么,并编译我的旧项目 我正处于恢复/重新安装/所有以前使用的组件的阶段, 重新检查演示和示例以刷新记忆或技能(几年内没有IDE) 在安装不同组件的过程中,我收到来自IDE的警告 像这样: 无法加载包“dcliteXX”,因为它包含单元“zlib”,该单元也是 包含在包装DelphiXV0中。你想试试吗 是否在下次加载项目时加载此包 然后我在整个/AddComponents目录中搜索文件,并找到:如何在Delphi中正确升级Zlib&;组件?,delphi,zlib,Delphi,Zlib,据新闻报道,目前的版本是1.2.8 可作为x32和x64 objs下载 目前我在机器上有Delphi的古老版本。 我正试图用它做点什么,并编译我的旧项目 我正处于恢复/重新安装/所有以前使用的组件的阶段, 重新检查演示和示例以刷新记忆或技能(几年内没有IDE) 在安装不同组件的过程中,我收到来自IDE的警告 像这样: 无法加载包“dcliteXX”,因为它包含单元“zlib”,该单元也是 包含在包装DelphiXV0中。你想试试吗 是否在下次加载项目时加载此包 然后我在整个/AddCompone
{$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
同一组OBJ,但版本不同
zlib.net中的zlib包具有win32 objs: 放气,充气,注入树木,树木,adler32 输入、输入和。。。压缩,crc32 和ZlibEx.pas、ZlibExAPI.pas、ZlibExGZ.pas
我第一次想:我可以将新的*.obj复制到组件的/implobj目录 并重新生成包以刷新其*.bpl、*.dcp包 但是,我对失踪感到困惑
{$L ZLIB\INFBLOCK.OBJ}
{$L ZLIB\INFCODES.OBJ}
{$L ZLIB\INFUTIL.OBJ}
在当前zlib_档案中
第二个想法是,如果我操作我的{Delphi}/lib路径并使用
位于高位的组件路径所有编译的项目和重建包都将获得新的zlib.dcu。
/测试需要他们会工作/
第三个想法——也许我会将所有组件单元声明从Zlib更改为ZlibEx
所有新编译的二进制文件获得当前zlib实现/二进制文件的方式
最后还有一个疑问——为什么不可能将链接的obj统一到zlib/pngzlib单元?
如果是,如何确保png组件与新的Zlib版本配合使用
我看不出有任何理由需要任何新的zlib.obj文件。如果我是你,我会坚持使用组件附带的.obj文件。试图放入新的.obj文件只是自找麻烦。您可能需要修改许多组件才能使其正常工作。为了什么 如果您使用的是现代的Delphi和最新的组件,那么,如果这些组件实现良好,那么这些组件将使用delphirtl中附带的zlib单元。您可以修改组件以使用单个共享zlib单元。但是,又有什么好处呢?现在您将使用组件的修改版本,这将使未来的Delphi升级更加复杂 在我看来,您的主要问题是有多个设计时包,其中有一个名为zlib的单元。下面是我要做的:
真的很糟糕。我不熟悉“德尔菲的古代版本”。它是否有一个更常用的名称?我知道它远低于您的要求,但我会采取以下方法:1)升级库的
zlib
(请参阅和相应的自述)2)消除“专有”源代码为3)的所有第三方库的依赖项和链接基线zlib将更新推送到第三方存储库/问题跟踪程序中。没有消息来源,不幸的是你运气不好。更新(Delphi界面)完成。2b)。可能(源于车载组件)、车载C zlib源、上一版本~1.1.3车载Pas翻译-用于与C源进行比较)。3). 由于“支持结束”,部分不可能。问题:如何从Inprise编译的dcliteX0.bpl中删除依赖项只需在任何地方使用新的ZlibEX接口(对于新项目)并接受内部IDE旧依赖项?非常感谢冲突解决和保留旧接口的建议。无论如何,我不明白为什么我会被推到“版本地狱”的地步。这一切都源于没有zlib的旧Delphi版本,所以第三方组件不得不包含它。遗憾的是,Delphi组件世界并不擅长共享。如果这是Linux,您只需要依赖另一个包。但从来没有一个标准包包含其他组件可以依赖的zlib