Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Callback Funktionen und DLL?

  Alt 15. Jun 2007, 16:17
das liegt daran das du als result ein pchar zurück gibst!
ein PChar ist nichts anderes als ein Zeiger der eben auf das erste Zeichen einer Zeichenkette zeigt.

folgendes klappt noch (ist aber auch unschön)
result := 'staticher Text'; folgendes geht aber nicht!
result := lokaleVarible; Der Grund ist ganz einfach. PChar ist eben nur ein Pointer auf das erste Zeichen einer Zeichenkette.
Bei dem statichen Text zeigt dieser PChar auf einen fest einkompilierten Text im Speicher (der da fest drin steht).
Bei der lokalen Variblen hingegen zeigt der PChar auf das erste Zeichen der lokalen Variablen die auf dem Stack liegt. Der Stack wird aber beim verlassen der Funktion aufgeräumt und somit zeigt der Pointer auf den Stack wo eventuell schon was ganz anderes liegt wenn du diesen abfragst bzw. nichts mehr liegt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat