Re: Inhalt einer TStringList in ein dynamisches String Array
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:
wird nicht nur ein winziger Referenzzähler verändert, so wie bei Ansistring,
Var S, S2: WideString;
S := S2; 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 |
Re: Inhalt einer TStringList in ein dynamisches String Array
Man könnte auch sagen, bei widestrings ist der imaginäre Referenzzähler immer 1. Und sobald eine Variable vom Typ WideString ihre Gültigkeit verliert wird der String freigegeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz