Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: D2010: Problem bei Typkonvertierung String => PAnsiCh

  Alt 20. Apr 2010, 18:00
Zitat von gmc616:
Bei mir hat das geholfen:LPAnsiChar1:=PAnsiChar(AnsiString(LString));
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 wäre also Folgendes, denn hier kannst du bestimmen wann MyTempStr freigegeben wird.
Delphi-Quellcode:
var MyTempStr: AnsiString;

MyTempStr := AnsiString(LString);
LPAnsiChar1 := PAnsiChar(MyTempStr);
Selbiges gilt für Alles, wo man keine Konrolle über das Ergebnis besitzt.
Delphi-Quellcode:
var MyTempStr: AnsiString;

MyTempStr := LString+' -Param1';
LPAnsiChar3 := PAnsiChar(MyTempStr);
$2B or not $2B
  Mit Zitat antworten Zitat