Delphi System.IntNN、System.UIntNN版本要求

Delphi System.IntNN、System.UIntNN版本要求,delphi,compatibility,Delphi,Compatibility,Delphi的第一个版本是什么,它在系统单元中声明了Int8,Int16,Int32,UInt8,UInt16,UInt32 我需要使用哪种vernn条件符号或RTLVersion值进行检测?我不知道您问题的答案。但是,通过在全局包含文件或代码中所有其他单元使用的单元中使用这样的代码,您可以避免需要知道: {$IF Declared(System.Int8)} {$ELSE} type Int8 = ShortInt; Int16 = SmallInt; Int32 = In

Delphi的第一个版本是什么,它在系统单元中声明了
Int8
Int16
Int32
UInt8
UInt16
UInt32


我需要使用哪种
vernn
条件符号或RTLVersion值进行检测?

我不知道您问题的答案。但是,通过在全局包含文件或代码中所有其他单元使用的单元中使用这样的代码,您可以避免需要知道:

{$IF Declared(System.Int8)}
{$ELSE}
type
  Int8   = ShortInt;
  Int16  = SmallInt;
  Int32  = Integer;//or Longint if you prefer
  UInt8  = Byte;
  UInt16 = Word;
  UInt32 = Cardinal;//likewise for Longword
{$IFEND}

我可以肯定的是,这些类型别名是在Delphi 2009中声明的,如果这是它们首次出现的版本,我也不会感到惊讶。

我认为这一定是非常非常新的版本。他们给我们提供了这些类型的可用名称,真是拖拖拉拉。如果这些名字出现在德尔福2007中,我从来没有遇到过。我不知道你在说什么。街道名称?原来的问题是IntNN,我根本不明白。@user我想你对编辑的评论应该是针对Johan的。我只将IntNN/UIntNN更改为特定版本。@user759588:我已经这样做了。@user Johan是一个高代表性用户,他完全有权进行此类编辑。如果你想回复,那也是你的权利。这是一个维基。@David,谢谢你。我以前没有见过
声明的
,实际上我必须将代码复制/粘贴到项目中,并编译它以相信它能工作。:)+1.(顺便说一句,我甚至在
$IF/$ELSE
之间添加了
{$MESSAGE'Declared worked'}
,以确保)这带来了另一个问题,尽管如此-什么时候添加了
声明的
?@Ken White,D6(检查VER140或CONDITIONALEXPRESSIONS)功能检测而不是版本嗅探,好主意,应该也能用。@Ken肯定出现在D6中,我有一种感觉,那就是它被引入的时候。@user和Integer也是如此。如果你愿意,可以使用Longint和Longword。值得一提的是,即使在Delphi64中,整数和基数也是32位的。上面的声明直接取自System.pas。有人确定他们是在D2007中引入的吗?是的,正如Joe White指出的,D2007缺少这些类型,所以-D2009。非常感谢。(校正:至少在系统单元中打开)