Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
1. Mär 2012
Ja, Optimierungen fehlen auch ... kommt alles noch. :angle:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
1. Mär 2012
Wenn es um die Funktion selber geht.
Das Original sieht so aus.
procedure _IntfCast(var Dest: IInterface; const Source: IInterface; const IID: TGUID);
{$IFDEF PUREPASCAL}
// PIC: EBX must be correct before calling QueryInterface
var
Temp: IInterface;
begin
if Source = nil then
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
1. Mär 2012
Hatte zwar schon einige Varianten durchprobiert.
Ich würde dich abknutschen, aber ich glaub ich laß das.
var
PIntfCast: Pointer;
begin
RedirectProcedureCall(Pointer($004099E8), @ExtendedIntfCast);
RedirectProcedureCall(Pointer(NativeInt(@TInterfacedObject.AfterConstruction) - 60), @ExtendedIntfCast);
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
1. Mär 2012
Ist gut und schön und im Prinzip funktioniert es,
wenn man den Zeiger zur Funktion kennt/bekommt.
Und das ist mein Hauptproblem ... an den komm ich nicht ran. :cry:
begin
p := @_IntfCast;
p := @IntfCast;
p := @System._IntfCast;
p := @System.IntfCast;