Das gilt auch für Stringkonstanten wie 'open' . Diesen WideString würdest du an eine Struktur übergeben die für AnsiString gedacht ist. Das wäre ein potenzieller Fehler.
Nicht ganz.
Stringkonstanten haben erstmal keinen Typ.
Übergibt man sie nun an einen AnsiString- oder PAnsiChar-Parameter, wird dafür eine AnsiString-Konstante eingebunden.
Würde man diesen an WideString-, UnicodeString- oder PWideChar-Parameter oder eben eine Variable übergeben, dann wird dafür eine
Unicode-Konstante eingebunden.
Werden beide Parameter/Variablen verwendet, werden zwei Konstanten eingebunden (
Ansi und
Unicode).
also mit delphi 2007 wäre es ok nur String zu benutzen? weil das schon Widechar ist?
Nein.
Bis D2007 waren String, Char und PChar auf AnsiString, AnsiChar und PAnsiChar gemapt wurden,
wärend dieses seit D2009 auf UnicodeString (nicht WideString), WideChar und PWideChar zeigt.