Zitat von
Win32.API:
[ebp-$04] lagert
imho eine Variable aus ...
nein, es gibt die Position an, wo eine Stringvariable steht
Delphi-Quellcode:
var S:
String;
asm
lea eax, &S
call foo
mov eax, &S
call showmessage
end;
oder selbergemacht.
Delphi-Quellcode:
var S:
String;
asm
mov [ebp-$04], 0
// string initialisieren
lea eax, [ebp-$04]
call foo
mov eax, [ebp-$04]
call showmessage
mov eax, [ebp-$04]
call StringFreigeben
end;
"string initialisieren": aber aufpassen, daß nichts anderes an dieser Position liegt, ansonsten halt ein anderes Fleckchen suchen
"StringFreigeben": ich weiß grad nicht wie die Funktion heißt .... schau einfach mal was bei "S := ''" gemacht wird ... die Funktion ist irgendwo in der System.pas definiert.