Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Inline Assembler: CALL (https://www.delphipraxis.net/190208-inline-assembler-call.html)

Stevie 13. Sep 2016 23:35

AW: Inline Assembler: CALL
 
Zitat:

Zitat von Zacherl (Beitrag 1347549)
Also thiscall (ECX = Pointer zur Objektinstanz) ist auch ohne Assembly möglich:
Delphi-Quellcode:
type
  TFunctionPointer = function(A, B, C: Integer): Integer of object;

// Aufruf
var
  Method: TMethod;
begin
  Method.Code := Pointer($00401234); // Adresse der Funktion
  Method.Data := Pointer($00749624); // Adresse der Objektinstanz
  Result := TFunctionPointer(Method)(1, 2, 3);

Das ist nicht korrekt. thiscall geht so

Amicello 13. Sep 2016 23:41

AW: Inline Assembler: CALL
 
So - jetzt muss ich mal wirklich ein großes Kompliment an die Aktiven hier im Forum loswerden.

Delphi ist ein Thema, bei dem man insbesondere als Anfänger gern mal stundenlang im Kreis herum googlen kann - und dabei häufig nur allgemeines Blabla, geistigen Unfug und unnütze Dinge findet, die man eh schon längst wusste.

So konkrete Antworten genau auf den Punkt wie hier im Forum, dazu noch weitergehende Vorschläge wie man das ganze noch verbessern oder eleganter lösen kann...
Was soll ich sagen - Danke und ich ziehe den Hut.. Chapeau Jungs (oder Mädels) :-D

Zacherl 14. Sep 2016 14:16

AW: Inline Assembler: CALL
 
Zitat:

Zitat von Stevie (Beitrag 1347574)
Das ist nicht korrekt. thiscall geht so

Hast du natürlich recht. Der Codeschnipsel von mir funktioniert nur mit Delphi-eigenen Methoden (Register-Call + versteckter This-Pointer als erstes Argument).


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz