Direct3D Uhr
-
Hallo,
ich habe ein Spiel und will mir dafür eine Uhr basteln. Diese soll im Spiel oben in der Ecke angezeigt werden.Das heißt, ich muss die "EndScene"-Funktion von dem Direct3D Device hooken. So weit so gut. Jetzt habe ich mich etwas informiert und will das Problem nun folgendermaßen lösen:
- Code kommt in eine DLL, welche in das Spiel geladen wird.
- Speicherstelle, wo das D3D-Device im Spiel liegt ist bekannt und kann somit ausgelesen werden.
- Nun muss ich den "Virtual Table" vom Device finde, ich weiß, dass EndScene die 42. Funktion ist.Jetzt ist meine Frage, wie finde ich den Table?
Ist der "in der Nähe" der Klasse (also dem D3D-Device)?Hoffe ihr könnt mir helfen.
GrußPS: Ja, ich weiß, viel Aufwand für ne kleine blöde Uhr, aber die ist eigentlich nur erst einmal zum Testen da, später soll das ein kleiner Musikplayer werden...
-
-
-
Irgendwie bist du im falschen Forum gelandet. Hier gehts um Standard-C++, nicht um Grafikbibliotheken.
-
Wieso musst du die vtable manuell finden? Sind die Funktionen nicht virtuell?
-
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x, bzw. C++11) in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Habe das Forum absichtlich gewählt, weil es primär um die virtuellen Funktionen geht.
Naja, danke für den Link, das sollte mein Problem lösen (warum hab ich den nicht selber gefunden).
Danke euch
-
Wenn wir schon einmal dabei sind: Ich habe mich schon immer gefragt warum man die MS Detours benutzt und für eine besondere Version (64-bit?) sogar bezahlen muss?
Wenn ich etwas hooken will dann überschreibe ich den CALL/IAT/etc. in der originalen exe zu meiner eigenen Funktion. Wo ist jetzt genau der essentielle unterschied zwischen dem und den MS Detours?
Danke im voraus!
-
Also Detours für 32bit sind relativ einfach, aber 64bit habe ich damals nicht hinbekommen und im Internet gabs auch nichts passendes