IDirect3DDevice9: Nicht aufgelöstes Token



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und 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.



  • Wenn es dir nur darum geht einen Screenshot zu machen, dann würde ich empfehlen, einfach GDI zu verwenden. Per CreateDC("DISPLAY", nullptr, nullptr, nullptr); einen Device Context für den ganzen Bildschirm holen, rausblitten und fertig...



  • dot schrieb:

    Wenn es dir nur darum geht einen Screenshot zu machen, dann würde ich empfehlen, einfach GDI zu verwenden. Per CreateDC("DISPLAY", nullptr, nullptr, nullptr); einen Device Context für den ganzen Bildschirm holen, rausblitten und fertig...

    1. Was heißt rausblitten?
    2. Kann man mit GDI auch von DirectX-Anwendungen aufnehmen?


  • terbaik schrieb:

    1. Was heißt rausblitten?

    http://msdn.microsoft.com/en-us/library/dd183370.aspx 😉

    terbaik schrieb:

    1. Kann man mit GDI auch von DirectX-Anwendungen aufnehmen?

    Es wird das gleiche drauf sein wie wenn du per Hand mit Windows einen Screenshot machst, gleich wie bei der Direct3D Variante auch. Einen Screenshot von einer Fullscreen Direct3D Anwendung wirst du mit beiden Lösungen nicht hinbekommen, denk ich, dafür müsstest du einen Direct3D Hook in die jeweilige Anwendung setzen und direkt an der Quelle das Bild abgreifen...



  • Nein, die DirectX-Methode, mit der ich das Ganze realisieren will, liest das Surface vom Backpuffer der DirectX-Anwendung, dafür braucht man keinen Hook!



  • Kann es denn wirklich so schwer sein, diesen dummen Fehler zu beheben? Kann mir nicht einer von euch sagen, was ich falsch mache? Ihr habt meinen Code, ihr habt die Fehlermeldungen und ihr kennt euch sehr gut mit der C++-Programmierung aus und weil dieser Thread in die Gaming-Kategorie verschoben wurde, nehm ich auch an, dass ihr Ahnung von DirectX habt. Wo liegt das Problem?



  • es wurde dir gesagt, was du zu tun hast. Aber ich schreibs beser mal in all caps: DER COMPILR FINDET DAS OBJEKT NICHT, WEIL DU IHM SAGST, DASS ES IRGENDWO WOANDERS IST, ABER DU ES DANN NIE ERZEUGST.

    Also: mach aus dem extern Zeiger einen normalen Zeiger und erstelle dann zuerst das notwendige Device. Dafür sollte man sich aber vorher ein DirectX Tutorial durchlesen.

    wenn du extern entfernst ohne das Device zu erstellen, dann compiliert dein Programm und wird erfolgreich gelinkt (wahrscheinlich) aber wird gnadenlos abstürzen.

    Vielleicht solltest du auch vorher noch mehr rfahrung mit C++ sammeln. Wer mit Grafikprogrammierung beginnt, sollte keine Probleme mit den Werkzeugen mehr haben.



  • Das ist doch mal ne Antwort 🙂 Die all caps hätten auch nicht sein müssen 😉



  • Okay, danke für eure Hilfe, Leute, ihr habt mich zu der Einsicht gebracht, dass ich mich erst näher mit der Materie beschäftigen muss, sprich lernen muss, mit directX zu entwickeln, um damit aufzunehmen.

    Ich lern jetzt hiermit:

    http://www.directxtutorial.com/LessonList.aspx?listid=9



  • terbaik schrieb:

    Nein, die DirectX-Methode, mit der ich das Ganze realisieren will, liest das Surface vom Backpuffer der DirectX-Anwendung, dafür braucht man keinen Hook!

    Nein tut sie nicht, kann sie nicht, denn dafür bräuchte man einen Hook...


Anmelden zum Antworten