delphi - Delphi 10.2 中未设置编译器指令
问题描述
我的 delphi probject 中有以下单元实现。
uses
{$IFDEF Ver270} JSON, {$ELSE} DBXJSON, {$ENDIF}
在 Delphi XE4 中将实现 DBXJSON - 这很好。在 Delphi XE6 中 JSON 将被实现——这也很好。
但在 Delphi 10.2 中,将实现 DBXJSON——而不是 JSON。为什么?这是 Delphi 10.2 中的错误吗?
解决方案
这不是错误,而是设计使然。每个版本都只有一个VERXXX
定义。VER270
仅在 XE6 和 XE6 中定义。对于版本 10.2VER320
已定义。
在您的场景中,使用这样的代码要简单得多:
uses
{$IF RTLVersion >= 27} JSON, {$ELSE} DBXJSON, {$IFEND}
另一种选择是使用标准的包含文件,例如jedi.inc
. 这消除了这种条件语句的痛苦。如果你使用jedi.inc
那么你可以这样编码:
uses
{$IFDEF DELPHIXE6_UP} JSON, {$ELSE} DBXJSON, {$ENDIF}
推荐阅读
- mysql - Mysql月份数到月份名称的转换
- c++ - 使用 SSL_read() 时如何知道何时没有从服务器接收到进一步的响应
- angular - 表单数组中的表单控件未定义
- go - mips64le下用cgo搭建静态库
- flutter - 添加 OneSignal 后,Flutter 不会启动应用程序。FrontBoard 不知道 OneSignalNotificationServiceExtension
- firebase - Firebase 和 Google 登录按钮
- java - Android Studio 无法从“generated_java”文件夹中导入 java
- javascript - 当指针在浏览器内快速移动时,MouseEvent.movementX 返回不正确的值
- javascript - React Native 获取 TextInput 值并使用 onBlur 或 onFocus 方法在同一个视图上使用
- c# - 如何在 xamarin.forms 中使用 CoreNFC?