我的组件库使用条件编译使源代码与 Delphi 7 以来的所有 Delphi 编译器兼容。我使用 DCC32.exe 的 CompilerVersion 定义。例如
{$IF CompilerVersion >= 24}
....
{$IFEND}
Run Code Online (Sandbox Code Playgroud)
这一直运行良好,但现在各种 10.4 版本之间的 VCL 库存在一些重大差异。这要求代码在 10.4、10.4.1 和 10.4.2 中有所不同。
如何检查编译器适用于哪个子版本的 Delphi?
从 Delphi 10.4.1 开始,您可以使用(例如)检查正在使用哪个 RTL/源:
{$IF Declared(RTLVersion1042)} // Compiled using Delphi 10.4.2 RTL
Run Code Online (Sandbox Code Playgroud)