Hallo,
Zitat von
Luckie:
Zitat:
Aber wieso hat meine Variante nicht funktioniert? Ich übergebe die Adresse und sogar die Länge+1, reserviere den Krams und erhalte sogar den String. Das hätte ich schon noch gerne mal gewusst!
Du sagst ihm zwar "da liegt was für dich", aber du sagst ihm nicht was da liegt. Nimmst du einen PChar, weiß der andere, was da liegt (eine Zeichenkette) und kann was damit anfangen. Soweit meine Theorie.
Ich denke eher, dass das Problem folgendes war: Er nimmt den Pointer, verwendet ihn wie einen PString und weist einem anderen String (der vorher sinnloserweise mit SetLength erstellt wurde) diesen zu. Dabei wird aber nur eine Referenz angelegt, da Delphi-Strings ja Copy-On-Write sind. Somit hat er also eine Referenz auf einen Sting im Hauptprogramm angelegt. Das aber ist ohne ShareMem verboten.
Gruß
xaromz