Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Apr 2010
Theoretisch ja, denn hier wandelst du den UnicodeString in einen AnsiString und erzeugst davon einen Pointer.
Praktisch ist es aber unpraktisch, da man so keine richtige Kontrolle über die temporär erzeugte delphi-interne AnsiString-Variable hat.
Heißt, du hast keine wirkliche Kontrolle darüber, wann Delphi den AnsiString freigibt und wann somit der Pointer darauf ungültig wird.
Sicherer...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Apr 2010
{31} LString:='C:\MeinOrdner\MeinUnterOrdner\MeineDatei.Endung';
{32} LAnsiString:=LString;
{33} LPAnsiChar1:=PAnsiChar(LString);
{34} LPAnsiChar2:=PAnsiChar(ExtractFilePath(LString));
{35} LPAnsiChar3:=PAnsiChar(LString+' -Param1');
{36} LPAnsiChar4:=PAnsiChar(LAnsiString+' -Param1');
{37} LPAnsiChar5:=PAnsiChar(LAnsiString+' -Param1 '+LString);
{38}...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
20. Apr 2010
LAnsiString: Bei Zuweisung von String/UnicodeString an AnsiString nimmt Delphi automatisch eine Umwandlung/Konvertierung vor.
Bei Pountertypen ist sowas nicht mautomatisch möglich.
Bei LPAnsiChar1 bis LPAnsiChar3 und vielleicht noch LPAnsiChar5 sollte Delphi bezüglich der falschen Typkonvertierung (UnicodeString nach PAnsiChar) meckern.
Und wenn man dieses ignoriert, dann soll man sich...