我前段时间用 Delphi 7 编写了一个单元,并且刚刚享受了转换为 Delphi XE (Unicode) 的乐趣(痛苦)。
该单元在遇到一些麻烦后工作正常,我现在正在尝试使该单元与不同的 Delphi 版本兼容,如果我需要在更新一些其他代码时将 IDE 切换回 Delphi 7。
我只有 Delphi 7 和 Delphi XE,但从我收集的用 Delphi 1 编写的代码到 Delphi 2007 可以编译,但 Delphi 2009 及更高版本的代码将是 Unicode。
...无论如何,在单元中我将非 unicode 和 unicode 分开,如下所示:
{$IFDEF VER150} //Delphi 7
// code
{$ELSE IFDEF VER220} //Delphi XE
// code
{$ENDIF}
如何修改编译器指令以使规则适用于多个版本?例如:
{$IFDEF VER80, //D1
VER90, //D2
VER100, //D3
VER120, //D4
VER130, //D5
VER140, //D6
VER150, //D7}
如果我分发源代码或 .dcu 单元,这将覆盖所有 Delphi 版本。
您最好的选择实际上是查看众多 JEDI 项目之一,例如 http://sourceforge.net/projects/jedi-apilib/,看看他们是如何做到的。他们有共同的包含文件,其中包含您感兴趣的详细信息。JVCL 是另一个不错的选择...