AGB  ·  Datenschutz  ·  Impressum  







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

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 12:02

Parameter dieser Suchanfrage:

Suche in Thema: D3D9 Hook bzw. als "proxy.dll"
Suche alle Beiträge, die von "Apollonius" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 9 von insges. 9 Treffern
Suche benötigte 0.002s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 28. Okt 2009
    Die Variable pmyIDirect3D9 muss den Typen IDirect3D9 haben! Sonst gibst du den falschen Zeiger zurück. Daneben solltest du AddRef und Release einfach von TInterfacedObject erben und nicht verändern.
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 27. Okt 2009
    Ich glaube nicht. :mrgreen: Wird aber nicht funktionieren, weil, wie Remko und ich festgestellt haben, Delphi da etwas anderes draus bastelt.
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 27. Okt 2009
    Sure, as I said, you cannot naively translate from/to C++. But SHOpenRegStream2 poses the very same exception problem I described above - I regard this as a bug. By forcing you to think about untyped pointers and reference counting, Delphi doesn't hide this bug. Delphi's interfaces are made to be fail-safe with the automatic reference counting - but this safety simply cannot be provided in the...
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 27. Okt 2009
    Delphi doesn't really put the result on stack - it uses an out Parameter. You see that the calling routine pushes the address ebp - 8 which is the address of the Unknown variable.
    I think that the modified signature using an out-parameter instead of the usual result is reasonable from a design standpoint. Returning an interface in eax is always bad - and never happens in the usual COM context -...
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 27. Okt 2009
    Stimmt, das stdcall fehlt - sehr seltsam. Register ist es allerdings auf keinen Fall.
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 27. Okt 2009
    Naja, die C++-Deklaration sieht so aus:

    IDirect3D9 * Direct3DCreate9(
    UINT SDKVersion
    );

    Und wenn ich in Delphi schreibe

    function Direct3DCreate9(SDKVersion: Cardinal): IDirect3D9; stdcall;
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 27. Okt 2009
    Was heißt denn jetzt "funktioniert nicht"? Hast du das mal debuggt?
    Christian, der Funktionsprototyp darf nicht verändert werden. Wenn man als Result ein Interface, dynamisches Array, String oder Variant verwendet, wird intern ein out-Parameter verwendet - man verändert also die Aufrufkonvention.
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 25. Okt 2009
    Ich schreibe das jetzt mal ohne Testen herunter. Deine Klasse dürfte ungefähr so aussehen:

    TMyDirect3D9 = class(TInterfacedObject, IDirect3D9)
    private
    fOrgDirect3D9: IDirect3D9;
    public
    constructor Create(org: IDirect3D9);

    //Diese Prozedur einfach an fOrgDirect3D9.Direct3DProc1 weiterleiten
    procedure Direct3DProc1;
  • Forum: Multimedia

    Re: D3D9 Hook bzw. als "proxy.dll"

      Delphi
      by Apollonius, 25. Okt 2009
    Du schreibst selbst eine Klasse, die IDirect3D9 implementiert. AddRef und Release kannst du implementieren, indem du von TInterfacedObject ableitest, QueryInterface wahrscheinlich auch, und den Rest schreibst du entweder selbst oder delegierst an das ursprüngliche IDirect3D9. In deiner Direct3DCreate9-Funktion gibst du dann nicht mehr das ursprüngliche Interface zurück, sondern eine Instanz...


URL zu dieser Suchanfrage:

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