Man mag es nicht glauben, aber möchte man zwei Typen/Typendeklarationen vergleichen, dann vergleicht man einfach deren Typen-Informationen.
Delphi-Quellcode:
if TypeInfo(
String) = TypeInfo(AnsiString)
then
IstAnsiString;
if SizeOf(Char) = 1
then
IstAnsiString;
if SizeOf(Char) = 2
then
IstUnicodeString;
{$IFDEF UNICODE}
IstUnicodeString
{$ENDIF}
{$IF CompilerVersion > 19.0}
IstUnicodeString
{$IFEND}
// das sollte wohl nur in Delphi 1 und vierlleicht auch noch Delphi 2 zutreffen (k.A. wann das umgestellt wurde)
if TypeInfo(
String) = TypeInfo(ShortString)
then
IstShortString;
z.B.
JEDI und Andere haben auch eine INC-Datei dabei, wo für sowas entsprechende Compilerschalter erstellt werden.