gpt4 book ai didi

delphi - 如何克服条件定义的 255 个字符限制?

转载 作者:行者123 更新时间:2023-12-03 15:07:35 25 4
gpt4 key购买 nike

Delphi 中的条件定义限制为 255 个字符。这意味着如果定义超过 255 个字符,它们将被忽略。例如。

enter image description here

所以条件集定义:

Win32API;AlarmServerEngineVersion27;ImNotUsingOlderSimpleThread;EnableJclExceptionTracking;SaveExceptionsToDatabase;ShowExceptionForm;SNAPIN_NEEDS_NODE_DESCRIPTOR;VIRTUAL_TREES_MOUSE_DOWN_FOCUS_LAST;UseSQLServerLocking;SnapInFactoryFormClassIsOptional;Strict;SIFFCIO;Sqm

最后 3 个定义将被忽略。

我需要的是一种在项目中定义条件定义的方法,同时不限于 255 个字符。

我想也许将条件定义移动到项目源文件,也许包含在包含文件中:

program ConsotoManager;

{$R *.RES}
{$R '..\Resource\Wumpa.res' '..\Resource\Wumpa.rc'}
{$DEFINE Win32API}
...
{$DEFINE Sqm}
{$DEFINE Strict}

uses
FastMM4,
Windows,
SysUtils,

不幸的是,它不起作用。它不起作用的原因是你不能用定义代替条件定义;只定义最后一个直到文件末尾。

那么,我如何克服 Delphi 中条件定义的 255 个字符限制?

<小时/>

问题当然是如何拥有项目级别定义,同时拥有共享源代码文件(共享文件位于项目之外的自己的目录中)文件夹)。

最佳答案

您几乎已经完成了项目文件中的定义,但请记住 Delphi 不是 C — 编译器不会在每次编译任何内容时按顺序读取每个提到的单元,就好像所有文件都粘贴在一起一样以文本方式显示,因此项目文件中定义的内容在该文件之外将不可见。

但是,Delphi 与 C 类似,因为它支持名为 include 的指令,该指令确实导致它重新读取上面提到的文件每一次编译。让我们使用它。

首先,将所有定义放入一个单独的文本文件中。我们将其命名为Defines.inc

{$DEFINE Win32API}
...
{$DEFINE Sqm}
{$DEFINE Strict}

然后将该文件包含到所有需要任何这些定义的源文件中。

program ConsotoManager;

{$R *.RES}
{$R '..\Resource\Wumpa.res' '..\Resource\Wumpa.rc'}
{$INCLUDE Defines.inc}

uses
FastMM4,
Windows,

现在您可以清除项目选项中的列表,然后将所需的任何定义添加到该文件中。当您更改该文件时,您可能需要执行完整构建(而不是简单编译)才能使更改生效。

另外,考虑一下您是否真的需要这么多编译变量。也许其中一些总是定义的,所以在编译时检查它们没有意义。也许其中一些是多余的。

关于delphi - 如何克服条件定义的 255 个字符限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660261/

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