Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Inhalt einer TStringList in ein dynamisches String Array

  Alt 5. Mai 2009, 11:13
nein, WideStrings werden von der CompilerMagic an die WinAPI weiterrereicht und dann auch automatisch reservier/freigegeben, allerdings besitzen sie keine Referenzzählung,


also bei
Delphi-Quellcode:
Var S, S2: WideString;

S := S2;
wird nicht nur ein winziger Referenzzähler verändert, so wie bei Ansistring,
sondern es wird eine komplett neue Kopie des gesamten Strings angefertigt und an S übergeben.


[add]
Length wird sozusagen an SysStringLen weitergeleitet (wobei das optimiert wurde, da kurz vor dem OLEString die Größe steht, also wird diese einfach direkt ausgelesen und durch 2 geteilt, da Größe in Byte)

und der Rest wird an SysAllocStringLen, SysReAllocStringLen und SysFreeString
weitergeleitet,
also wenn eine WideString-Variable initialisiert/finalisiert oder irgendwo verändert wird
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat