D3D BeginScene() und EndScene(): Welche DLL?
-
Hallo Leute,
ich hoffe ihr könnt mir helfen. Ich suche schon ewig die DLL, in der die D3D EndScene() und die D3D BeginScene() exportiert werden bzw. die DLL, in der die beiden Funktionen programmiert sind. Wäre um jede Antwort dankbar.
-
Wie wärs mit der d3d9.dll
-
Hab ich schon mit DLL Export Viewer überprüft.. Hier wird sie nicht exportiert..
-
Dir ist schon klar dass D3D auf COM basiert, oder?
Du wirst die Methode da nicht einfach in der Export Table der dll finden...
-
Du benötigst ein IDirect3DDevice9-Interface, was du vom IDirect3D9-Interface bekommst, was du von Direct3DCreate9 bekommst.
-
Nein das wusste ich noch nicht.. Also komm ich mit GetProcAddress() auch nicht an EndScene() und BeginScene() ran? Das erklärt so einiges
Gäbe es dennoch eine Möglichkeit einen Zeiger auf die Funktionen zu erhalten? Ohne das Ganze über ein IDirect3DDevice9-Interface zu handhaben?
-
Zumindest keinen einfachen...was genau willst du denn bitte tun?
-
Ich möchte eine Art ICQ Plugin für Spiele programmieren.. Zum zeichnen der GUI im Spiel brauch ich die Adresse von EndScene()..
-
Dacht ichs mir schon fast...Ich denke weiters dass das genau ist was du willst: http://research.microsoft.com/en-us/projects/detours/
-
Sag das doch gleich!
Das sollte machbar sein.Als erstes musst du irgendwie an das Direct3DDevice9-Interface des Spiels gelangen. Frag mich nicht wie!
Als nächstes musst du vorzugsweise IDirect3DDevice9::EndScene hooken. Wenn das Spiel EndScene aufruft, führst du stattdessen deinen Code aus: Deine ICQ-GUI rendern. Wenn du damit fertig bist rufst du noch die originale EndScene-Methode auf.
Fertig. Aber frag mich nicht nach Einzelheiten!
-
Blaze schrieb:
Als erstes musst du irgendwie an das Direct3DDevice9-Interface des Spiels gelangen. Frag mich nicht wie!
Siehe mein Link
-
Ja also die Detour Funktion wäre kein Problem, die kann ich mir auch selbst programmieren
Aber zum erfolgreichen Detour braucht man ja die Adresse der EndScene() Funktion und der "neuen" Funktion. Von der neuen ist ja kein Problem, aber wie komme ich an die Adresse von der EndScene() Funktion? Oder bietet Windows Detours2 dafür eine andere Möglichkeit, die ich in meiner Recherche übersehen habe?
-
Ja Detours bietet soweit ich weiß eben die Möglichkeit auch COM Interfaces umzuleiten...
-
zu spät