AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 00:17

Parameter dieser Suchanfrage:

Suche in Thema: thiscall calling convention
Suche alle Beiträge, die von "SMO" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 6 von insges. 6 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Object-Pascal / Delphi-Language

    AW: thiscall calling convention

     
      by SMO, 16. Aug 2015
    Du hast also in Delphi etwas implementiert, das von einem Aufrufer (Winamp?) benutzt werden kann, der eigentlich eine C++ Klasse bzw. thiscall erwartet.
    Das ist genau das Gegenteil von dem was Sunec möchte (selbst aufrufen, nicht aufgerufen werden). Aber das Prinzip ist natürlich gleich.

    Und auch dein neues Beispiel könnte mit meinem Trick "schöner" gemacht werden (kein asm, keine globale...
  • Forum: Object-Pascal / Delphi-Language

    AW: thiscall calling convention

     
      by SMO, 16. Aug 2015
    Ist ja toll. Nur noch mal zur Erinnerung: Die Kernfrage von Sunec war, ob es einen besseren Weg gibt, die "this" Referenz eines thiscalls in ecx zu bekommen. Dein "Ansporn" hat da in keinster Weise geholfen, eine Lösung zu finden.
    Wie es wirklich geht, habe ich gezeigt. (Ist natürlich ein Hack, aber "besser" als einen asm-Block vor jedem Methodenauruf finde ich ihn schon.)
  • Forum: Object-Pascal / Delphi-Language

    AW: thiscall calling convention

     
      by SMO, 16. Aug 2015
    Ich glaube, du verstehst nicht... das ist ein Kommentar, keine Zuweisung. :P
    Bei stdcall landen alle Parameter auf dem Stack, nicht in Registern.

    Dieses Codebeispiel ist unvollständig oder funktioniert nicht. Wie gesagt, falls diese "Dispatch" Methode "this" gar nicht braucht, wird es funktionieren, aber das ist nicht der Allgemeinfall.
  • Forum: Object-Pascal / Delphi-Language

    AW: thiscall calling convention

     
      by SMO, 16. Aug 2015
    Ich sehe nicht, wie und wo bei diesem Vorgehen das "this" in ecx landet, da stdcall benutzt wird.

    Es gibt übrigens durchaus C-Methoden, die das "this" nie benutzen und daher von Delphi aus per stdcall aufgerufen werden können. Aber im allgemeinen Fall geht das nicht und man muss irgendwie dafür sorgen, dass ecx den richtigen Inhalt bekommt.
  • Forum: Object-Pascal / Delphi-Language

    AW: thiscall calling convention

     
      by SMO, 16. Aug 2015
    Ist es das? Sehe ich nicht so (stdcall vs. register), aber vielleicht stehe ich gerade auf dem Schlauch.



    Danke. :)
  • Forum: Object-Pascal / Delphi-Language

    AW: thiscall calling convention

     
      by SMO, 16. Aug 2015
    Ich hatte auch mal damit zu tun und habe es folgendermaßen gelöst:

    type
    PCppClass = ^TCppClass;
    PCppClassVtbl = ^TCppClassVtbl;
    TCppClassVtbl = packed record
    // These are actually Microsoft "thiscall" convention functions that pass a C++ object reference
    // in the ecx register. Delphi doesn't support this calling convention, but in its default
    // "register" calling...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=SMO&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=186229
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
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