为什么新编译器在这段旧代码中没有识别出“NULL”?

时间:2013-05-24 21:16:03

标签: delphi delphi-2006 adsi

我刚刚下载了ADSI,它似乎与Delphi Embarcadero XE4不兼容。

当我尝试编译其中一个示例时,我收到此错误:

[dcc32 Error] adshlp.pas(128): E2003 Undeclared identifier: 'NULL'

这就是这句话:

varArr := NULL;

出了什么问题?

1 个答案:

答案 0 :(得分:14)

Null过去曾在系统单元中声明,因此全局可用。在Delphi 6中,所有与Variant相关的代码都移出该单元并进入新的 Variants 单元。由于Null是一个返回Variant的函数,因此移动中包含Null,因此它不再隐式可用。

要修复旧代码,只需将 Variants 添加到需要它的任何单元中的uses子句中:

uses ..., Variants;