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)
Cool, wieder was dazu gelernt - THX
Wo mische ich? Ich habe nur Delphi 7 hier, deshalb habe ich ausdrücklich WideStrings benutzt.
Damit ahst du nicht mehr gemischt - sorry
Aber meine Codeanpassung hatte auch nicht eine Fehler

Ich habe ShellExecuteEx
W aufgerufen anstatt ShellExecuteEx.
Ich denke nur, dass man auf explizite WideString bzw. AnsiString-Verwendung verzichten sollte wo es geht. Dann funktioniert der Quelltext unter 2007 und >=2009
Gruß, Chris