Zitat von
Olli:
Übrigens wäre das wohl richtiger
Delphi-Quellcode:
type
PStringInfo = ^TStringInfo;
TStringInfo = packed record
Rec : StrRec;
pStringAddr : Pointer;
end;
Die Rolle des ersten Elementes von StrRec scheint mir durchaus relevant, wenn wir zB Zuweisungen betrachten.
Ok du Pedant!
Wenn ich das Tut mal überarbeite werd ich das berücksichtigen und korrigieren!
Zitat:
Im Tut steht ja ganz am Ende:
Womit auch klar sein sollte, mit welcher Typecast-Methode man einen String an eine
API Funktion (die Daten in diesen String schreibt) übergeben sollte, wenn man sich nicht sicher ist, dass dieser String ein „Unikat“ (mit einem Referenzzähler von 1) ist.
Darf man fragen, welche Methode dies denn nach Ansicht des großen Meisters ist?!
Naja, der wichtigste Teil in diesem Satz ist:
Zitat:
[..]wenn man sich nicht sicher ist, dass dieser String ein „Unikat“ (mit einem Referenzzähler von 1) ist.
Nur eine der 3 Cast-Methoden stellt sicher, dass der übergebene Pointer auf ein Unikat zeigt und das ist @String[1], da bei dieser Methode intern UniqueString aufgerufen wird. Bei den beiden anderen Methoden werden ja auch gleichzeitig alle anderen Strings verändert, die ebenfalls den übergebenen String referenzieren. Wobei das ja nur wichtig ist, wenn die
API Daten im String ablegt und ihn dadurch verändert.
Gruß, Motzi