Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#17

Re: Stringübergabe via Pointer - Mach ich was falsch?

  Alt 7. Mär 2007, 07:58
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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat