Delphi-Quellcode:
function GetIntfCastAddr: Pointer;
asm
lea eax,System.@IntfCast;
end;
Hatte zwar schon einige Varianten durchprobiert.
Ich würde dich abknutschen, aber ich glaub ich laß das.
Delphi-Quellcode:
var
PIntfCast: Pointer;
begin
RedirectProcedureCall(Pointer($004099E8), @ExtendedIntfCast);
RedirectProcedureCall(Pointer(NativeInt(@TInterfacedObject.AfterConstruction) - 60), @ExtendedIntfCast);
asm
LEA EAX, System.@IntfCast
MOV &PIntfCast, EAX
end;
RedirectProcedureCall(PIntfCast, @ExtendedIntfCast);
Da ich diese Funktion auch demnächte veröffentlichen würde (in 'ner
Unit verpackt), gefällt mir Letzeres natürlich besser.
(muß dann nur noch irgendwann mal sehn, wie das mit Win64 und Co. aussieht)
Ein Therapeut entspricht 1024 Gigapeut.