d7之后,对升级影响比较大的版本有这些:delphi2009,xe2以及xe5。
2009开始string默认为unicode,
{$IFDEF Ver200}
{$IF CompilerVersion >= 20}
- 迁移旧版本把string替换成ansistring,char替换成ansichar,pstring替换成pansistring,pchar替换成pansichar。
char占两个字节,string的每个字符也是两个字节。
内存拷贝时使用sizeof(char)
xe2引入Firemonkey,支持64位编译
{$IFDEF Ver230}
{$IF CompilerVersion >= 23}
引用的unit增加前缀 Vcl. FMX.
64位程序兼容性问题。
- 嵌入式汇编代码,64位下的函数参数用的寄存器发生变化。
- 在64位下,integer依然是32位