DirectX: H-Dateien werden nicht gefunden?



  • Hallo, ich bin gerade dabei ein Buch über C++ und DirectX zu lesen. Dort wollte ich ein Beispiel-Programm kompilieren aber Visual C++ schrieb mir 3 Fehlermeldungen
    Code:

    1>c:\c++ cd inhalt\projekte\ultris\v01\dsutil.cpp(13) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "dxerr8.h": No such file or directory
    1>ddutil.cpp
    1>c:\c++ cd inhalt\projekte\ultris\v01\ddutil.cpp(15) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "dsound.h": No such file or directory
    1>Demo.cpp
    1>c:\c++ cd inhalt\projekte\ultris\v01\demo.cpp(4) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "dsound.h": No such file or directory

    Kann es sein dass mir irgendwelche Dateien fehlen? 0.o Ich habe nämlich in meinem Projektordner keine dxerr8.h usw. Da die Projekte mit Visual C++ 2003 erstellt worden sind musste ich das Projekt konvertieren aber im "Konvertierungsbericht" stand dass 1 Datei nicht konvertiert ist. Das Buch heißt übrigens "Spieleprogrammierung mit DirectX und C++". Achja, ich benutze Visual C++ Express Edition 2008.



  • directx sdk installiert?



  • Ja.



  • /path/to/dxsdk/include zu den include verzeichnissen hinzugefügt?



  • sothis_ schrieb:

    /path/to/dxsdk/include

    Was meinst du damit? 0.o (sorry das ich so doof frage, aber ich weiß es nicht o.o)



  • du musst dem kompiler sagen wo er nach den header dateien suchen soll. in visual studio kannst du das, ummm, irgendwo unter [optionen/vc-verzeichnisse] einstellen.



  • Ich finde die Einstellung nicht. Und welche Header-Dateien meinst du? Wo die fehlenden Header-Dateien sind weiß ich ja nicht.

    Vielleicht könnte mir ja jemand ein "Grundgerüst" mit allen Dateien und der Projektdatei für DirectX schicken? Dann könnte ich den Fehler vielleicht finden x|



  • he,

    ich nutze zwar die 2005er Version, es sollte sich im Grunde aber nicht unterscheiden:

    extras->optionen->Projekte und Projektmappen->VC++ verzeichnisse

    dann oben rechts die Include-Dateien auswählen, genauso wie Bibliotheks- und Ausführbare Dateien. Für jeden Typ musst Du die Visual Studio, die PSDK und DirectX Ordner angeben.

    Das sollte erstmal helfen. Ansonsten hier noch eventuell Hilfe:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html



  • Hallo, wo finde ich denn jetzt den PSDK und DirectX Ordner? Der PSDK Ordner ist doch C:\Programme\Microsoft SDKs\Windows\v6.0A\ und dann für ausührbare Dateien bin, für Include-Dateien Include und für Biblotheken Lib. Aber wo ist der DirectX Ordner? Es gibt noch eine "Kabinettdatei" mit dem Namen DirectX unter C:\, aber die kann man nicht auswählen.

    Wäre es nicht leichter einfach die entsprechenden H-Dateien in den Projekt-Ordner einzufügen und gut ist? xD (Bloß wo sind die H-Dateien von DirectX...)



  • sothis_ schrieb:

    directx sdk installiert?

    Nichts95 schrieb:

    Ja.

    Also wenn Deine Antwort stimmt, hast Du das DirectX SDK ja schon installiert - wo, kannst nur Du wissen... bist Du ganz sicher?

    Such doch einfach mal bei Dir auf dem Rechner nach *.h Dateien und folgere daraus, wo Du das DirectX SDK installiert hast.

    (Nur so zur Sicherheit, DirectX SDK: http://www.microsoft.com/downloads/details.aspx?FamilyId=572BE8A6-263A-4424-A7FE-69CFF1A5B180&displaylang=en)



  • Also bei der SDK habe ich etwas verwechselt, naja, egal, habe sie jetzt garantiert installiert^^ Jetzt kommen allerdings über 200 Fehler... Bevor ich die Fehler bekommen habe habe ich erstmal die entsprechenden h-Dateien kopiert und dann einfach ins Verzeichnis vom Projekt kopiert. Das Problem war dass die Dateinamen von der DirectX SDK etwas anders waren, so z. B. #include "d3dcaps.h" musste ich in #include "d3d9caps.h" ändern. Als ich dann alle H-Einträge geändert habe kamen die ganzen Fehler... Ich vermute mal dass diese warscheinlich nur an einem Problem liegen weshalb ich nur die ersten Fehlermeldungen poste:

    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(10) : warning C4068: Unbekanntes Pragma
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(209) : error C2061: Syntaxfehler: Bezeichner 'LPD3DENUMDEVICESCALLBACK'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(213) : error C2061: Syntaxfehler: Bezeichner 'LPD3DFINDDEVICESEARCH'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(252) : error C2061: Syntaxfehler: Bezeichner 'LPD3DENUMDEVICESCALLBACK'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(256) : error C2061: Syntaxfehler: Bezeichner 'LPD3DFINDDEVICESEARCH'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(297) : error C2061: Syntaxfehler: Bezeichner 'LPD3DENUMDEVICESCALLBACK'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(301) : error C2061: Syntaxfehler: Bezeichner 'LPD3DFINDDEVICESEARCH'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(303) : error C2061: Syntaxfehler: Bezeichner 'LPD3DVERTEXBUFFERDESC'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(304) : error C2061: Syntaxfehler: Bezeichner 'LPD3DENUMPIXELFORMATSCALLBACK'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(351) : error C2061: Syntaxfehler: Bezeichner 'LPD3DENUMDEVICESCALLBACK7'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(353) : error C2061: Syntaxfehler: Bezeichner 'LPD3DVERTEXBUFFERDESC'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(354) : error C2061: Syntaxfehler: Bezeichner 'LPD3DENUMPIXELFORMATSCALLBACK'
    1>c:\dokumente und einstellungen\...\eigene dateien\visual studio 2008\projects\ultris\v12\d3d.h(394) : error C2061: Syntaxfehler: Bezeichner 'LPD3DDEVICEDESC'
    ...



  • Bevor ich die Fehler bekommen habe habe ich erstmal die entsprechenden h-Dateien kopiert und dann einfach ins Verzeichnis vom Projekt kopiert.

    WAAA???

    Das Problem war dass die Dateinamen von der DirectX SDK etwas anders waren, so z. B. #include "d3dcaps.h" musste ich in #include "d3d9caps.h" ändern.

    WAAAA?

    Einfache Antwort: mach sowas nicht, und setz include verzeichnisse. wenn auch nur eine header datei einen relativen Pfad includiert, bist du im eimer, vorallem bei dateinamen.



  • guck dir nochmal meinen vorletzten post an. dort musst du die unveränderten dateien einbinden. du solltest alle deine änderungen rückgängig machen und es auf die "normale" art und weise vesuchen..

    ach ja, du musst keinerlei dateien in dein projektverzeichnis kopieren. durch das einbinden der include, bin und lib dateien aus den jeweiligen verzeichnissen (plattform sdk, directx sdk) kann deine anwendung auch darauf zugreifen.



  • Ok, habe jetzt alles "rückgängig" gemacht. Mein Problem ist jedoch dass er die ihm fehlenden Dateien immer noch nicht findet! Ich habe bei VC++-Verzeichnisse unter Includedateien C:\Programme\Microsoft DirectX SDK (March 2008)\Include angegeben und unter Bilbotheksdateien C:\Programme\Microsoft DirectX SDK (March 2008)\Lib eingegeben. Dcoh er schreibt mir weiterhin dass ihm die H-Datei(en) fehlt/fehlen... (ich habe mal im Explorer den Ordner Include im DirectX SDK Verzeichnis angeguckt und da ist auch keine 3d3.h! Wenn dann ist da eine 3d39.h...)



  • Ich rate Dir, DirectX nochmal zu deinstallieren und wieder neu zu installieren. Wahrscheinlich hast Du mit Deinen Umbenennungen die d3d.h überschrieben oder so... die d3d.h muss jedenfalls im Paket dabei sein.
    Danach alles (PSDK und DXSDK - include, bin und lib) neu einbinden und eventuell nochmal posten, was noch fehlt oder falsch ist.

    ..meiner Meinung nach 🙂



  • Ich habe die d3d.h nie umbenannt. Naja, ich habe es auf jeden Fall nochmal installiert und ihm fehlt wieder die d3d.h 🙄 Wie gesagt, im Explorerer finde ich keine d3d.h sondern nur eine d3d9.h .



  • hm.. also ich bin mir nicht sicher, installiere das ja auch nicht täglich, aber vielleicht solltest du mal eine frühere version installieren. zB die vom august 2007:

    http://www.microsoft.com/downloads/details.aspx?familyid=529f03be-1339-48c4-bd5a-8506e5acf571&displaylang=en

    also die aktuellste version runterschmeißen und die "alte" draufziehen..

    ..da sollte die datei drin sein, wenn nicht, weiß ich auch nicht mehr weiter 😕



  • iop schrieb:

    also die aktuellste version runterschmeißen und die "alte" draufziehen..

    Dazu muss er aber nicht die aktuelle Version deinstallieren.



  • So, jetzt klappts endlich, Danke! (Aufjedenfall mit dem DirectX SDK :P)


Anmelden zum Antworten