Besser wäre ein eigener Typ:
Delphi-Quellcode:
type
{$IFDEF VER140}
RawAnsiString = type AnsiString($FFFF);
{$ELSE}
RawAnsiString = type AnsiString;
{$ENDIF}
...
Die Varianten mit VERxxx sind eigentlich "doof", denn dieses bezieht sich immer auf genau eine bestimmte Compiler-Version
Delphi-Quellcode:
type
{$IF CompilerVersion <= 14.0}
RawAnsiString = type AnsiString;
{$IFEND}
oder gar sowas
Delphi-Quellcode:
type
{$IF (CompilerVersion >= 7.0) and (CompilerVersion <= 14.0)}
RawAnsiString = type AnsiString;
{$IFEND}
Ansonsten würde ich hier einfach nach dem Typen gehn, ob dieser existiert
Delphi-Quellcode:
type
{$IF not Declared(RawAnsiString)}
RawAnsiString = type AnsiString;
{$IFEND}
Wie war das nochmal mit dem D2007?
Es gab schon die CodePage in den Strings, aber noch keinen RawByteString, oder wie?