Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#13

Re: Delphi Inline Assembler Zugriff auf Privates Objekt

  Alt 18. Nov 2003, 08:28
Nein, ab D7 funktionieren nur die zweite Notation als Typcast, bzw genauer gesagt als korrekter Qualifier eines Recordelementes. Denn die erste Notation ist ein Pascaltypischer Typcast, die zweite Notation aber ein in Asm reguklärer Strukturqualifier.

Delphi-Quellcode:
type
  TMyObject = class
    FProc: procedure(const Data; DataSize: Integer) of object;
  end;

procedure TMyObject.Calc(const Data; DataSize: Integer); assembler;
asm
    JMP DWord Ptr [EAX].FProc.TMethod.Code // in D7

    JMP TMethod([EAX].FProc).Code // bis D7 möglich
end;
Beides wären regulär gültige Syntax, aber nur der erste Fall wird ab D7 durch den inline Asm akzeptiert. Betrachtet man meine obige Aussage was der Unterschied beider Syntax sind (Typcast <> Qualifier) dann ist dies auch logisch. Auch ich habe dies erneut lernen müssen und meine nun das es korrekt war in D7 diese Syntax zu straffen.

Gruß Hagen
  Mit Zitat antworten Zitat