Es ist ein eigener Prozess.
Also ich habe gerade mal etwas rumprobiert und war auch theoretisch recht erfolgreich:
Delphi-Quellcode:
TForm1 =
class(TForm)
private
{ Private-Deklarationen }
public
n: Integer;
end;
implementation
function GetExceptionStackInfoProc(P: PExceptionRecord): Pointer;
begin
PInteger(p^.ExceptObject)^ := 20;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Exception.GetExceptionStackInfoProc := GetExceptionStackInfoProc;
end;
procedure TForm1.Button1Click(Sender: TObject);
var op: Cardinal;
begin
n := 10;
VirtualProtect(@a,4,PAGE_EXECUTE_READWRITE
or PAGE_GUARD,op);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Caption := IntToStr(n);
// n = 20, falls vorher auf Button1 geklickt wurde
end;
Generell ist das also super. Allerdings scheint es dieses
Exception.GetExceptionStackInfoProc-Feature erst in neueren Delphi Versionen zu geben. Wäre ganz gut wenn das auch in älteren ginge.
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."