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)