1

When working with Delphi XE2 I have the following problem:

When I try to compress a response from IdHTTPServer that should be sent to a client, I am not able to do this. The IdCompressorZLib.CompressHTTPDeflate or IdCompressorZLib.CompressStream functions always stop with the error ZLib Error (-6). This means that Delphi does not find a library with the expected version. ZLIB_VERSION is set to 1.2.5 in my environment.

My question is what I have to do to get it working?

4

1 回答 1

1

好的,我已经启动了 XE2 并且可以重现您报告的内容。Embarcadero 在为 XE2 构建 Indy 时似乎犯了错误。链接对象的 zlib 版本与传递给 zlib 初始化函数的 zlib 版本不匹配。你不能用他们发货的东西来解决这个缺陷。

在我看来,您的选择:

  1. 修复随 XE2 提供的 Indy 版本。这将涉及修改 Indy 源文件并修复版本不匹配。然后将修改后的 Indy 单元链接到您的应用程序。不是不可能,但可能有点尴尬。
  2. 使用从 Indy 项目 repo 获得的最新版本的 Indy。然后,您将拥有最新和最伟大的 Indy。
  3. 使用不同的 zlib 库。例如,众所周知,Delphi 附带的 zlib 库可以工作。当我在评论中提出建议时,我知道您对此有疑问,但是我已经毫无问题地使用了它。
  4. 使用不同版本的 Delphi。不是一个很好的选择,但为了完整起见,我将其包括在内。
于 2013-04-17T19:10:26.920 回答