(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: PChars und Dll
13. Aug 2006, 11:52
dir fehlt glaub ich das Verständnis was PChar ist.
PChar ist nichts anderes als ein Pointer der auf eine Reihe von zeischen zeigt welche in der Regel mit #0 terminiert wird.
Mit
result := PChar(stemp);
gibst du also einen Pointer auf die Zeischen von "sTemp" zurück.
Allerdings ist nach verlassen deiner Funktion sTemp gar nicht mehr verfügbar da es eine lokale Variable ist welche auf dem Stack abgelegt werden. Nach verlassen deiner Funktion ist sTemp also nicht mehr gültig. Deine Funktion funktioniert allerdings ab und zu weil zu dem Zeitpunkt vermutlich auf dem Stack noch nix neues liegt. Sobald aber was neues auf dem Stack liegt überschreibt dies den Wert der früher auf dem Stack lagt wo dein Pointer drauf zeigt.
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|