gpt4 book ai didi

delphi - 如何有条件地编译更新的 Indy 功能?

转载 作者:行者123 更新时间:2023-12-03 15:47:31 27 4
gpt4 key购买 nike

我已经找到this answer关于如何在运行时检查 Indy 版本,有多种不同的方法。不过,我正在寻找如何使用条件在编译时检查 Indy 版本。新版本的 Indy 中有一项功能,我希望我的开源项目能够使用该功能(如果可用)。但我需要有条件地编译它。

我找到了 IdVers.inc,但该文件仅包含常量 - 没有版本条件。

更具体地说,TIdHTTP 有一个属性 HTTPOptions,它有一个新选项 hoWantProtocolErrorContent。如果可以的话,我想使用它。

如果可用,我如何有条件地使用此选项?

最佳答案

我认为您可以使用以下方法获得您想要实现的结果

{$if declared ...

构建。 rtl 中的 SysInit.Pas 中有一个使用示例:

function GetTlsSize: Integer;
{$IF defined(POSIX) and defined(CPUX86) and (not defined(EXTERNALLINKER))}
asm
// Use assembler code not to include PIC base gain
MOV EAX, offset TlsLast
end;
{$ELSE}
begin
Result := NativeInt(@TlsLast);
{$IF DECLARED(TlsStart)}
Result := Result - NativeInt(@TlsStart);
{$ENDIF}
[...]

以及我在评论中提到的文章,$If Declared , D2009 online help 中也有这个.

$if statements 适用于类的方法,例如

procedure TMyClass.DoSomething;
begin
{$if declared(TMyClass.Added)} // Added being a procedure of TMyClass
Added;
{$endif}
end;

关于delphi - 如何有条件地编译更新的 Indy 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56826276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com