[C++] DirectX SDK

Raven280438

Erfahrenes Mitglied
Hi,

ich möchte mich mit Spieleprogrammierung mit DirectX beschäftigen.

Ich habe mir das Buch "Spieleprogrammierung in C++" von Galileo Computing gekauft und wollte die Spiele die darin enthalten sind nachbauen.

Das Buch basiert auf DirectX8, zumindest ist dieses SDK auf der CD enthalten.

Ich habe aber DirectX SDK 10 von Juni 2010 installiert

Leider bekomme ich beim Komilieren verschiedene Fehlermeldungen von einigen Header-Dateien.

1>------ Build started: Project: Demo, Configuration: Debug Win32 ------
1>Compiling...
1>Demo.cpp
1>c:\users\roman\desktop\v02\ddutil.h(12) : fatal error C1083: Cannot open include file: 'd3d.h': No such file or directory
1>ddutil.cpp
1>c:\users\roman\desktop\v02\ddutil.h(12) : fatal error C1083: Cannot open include file: 'd3d.h': No such file or directory
1>dsutil.cpp
1>c:\users\roman\desktop\v02\dsutil.cpp(13) : fatal error C1083: Cannot open include file: 'dxerr8.h': No such file or directory
1>dxutil.cpp
1>c:\users\roman\desktop\v02\dxutil.cpp(46) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(79) : see declaration of 'strcat'
1>c:\users\roman\desktop\v02\dxutil.cpp(66) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy'
1>c:\users\roman\desktop\v02\dxutil.cpp(77) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : see declaration of 'sprintf'
1>c:\users\roman\desktop\v02\dxutil.cpp(88) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy'
1>c:\users\roman\desktop\v02\dxutil.cpp(107) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy'
1>c:\users\roman\desktop\v02\dxutil.cpp(487) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy'
1>c:\users\roman\desktop\v02\dxutil.cpp(489) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy'
1>c:\users\roman\desktop\v02\dxutil.cpp(537) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy'
1>c:\users\roman\desktop\v02\dxutil.cpp(539) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy'
1>c:\users\roman\desktop\v02\dxutil.cpp(608) : warning C4996: '_vsnprintf': This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_vsnprintf'
1>Generating Code...
1>Build log was saved at "file://C:\Users\Roman\Desktop\V02\Debug\BuildLog.htm"
1>Demo - 3 error(s), 10 warning(s)

Ist das DirectX SDK nicht abwärtskompatibel oder mach ich etwas anderes falsch?
Wenn ich die fehlenden Header-Dateien aus dem Internet runterlade bekomm ich wieder andere Fehlermeldungen. Bis jetzt hab ich es nicht hinbekommen, dass das Programm läuft.

Ich benutzte VS2008 mit WinVista.



Gruß
 
Du musst Visual Studio noch sagen, wo es deine Headerfiles zu finden hat =)

Gebe dazu beim #include den vollständigen Pfad an, oder füge in dein Projekteinstellungen die nötigen Include/Lib Verzeichnisse hinzu.
 
Wäre mir neu, dass dies der Fall ist. Ich mein, es ist ne Weile her, doch meinen Erinnerungen zu folge, lässt sich das SDK irgendwo hinentpacken, und nicht automatisch ins VS include Verzeichnis.
Die Compilerfehlermeldung spricht ja auch dafür, es sei denn, du hast mit " und nicht < > includiert ;)
 
Hi,

ich hab nochmal nachgesehn, die Verzeichnisse von "Executable Files", "Include Files" und "Library Files" sind richtig ein den VS-Optionen ganz oben gesetzt.
In den Projektoptionen sind beim Linker die "Additional Dependencies" auf die lib Dateien gesetzt, die im Buch angegeben sind.

Wenn ich die Header-Dateien runtergeladen habe, hab ich sie im Quellcode natürlich mit "" anstatt <> eingebunden und sie ins Projekt-Verzeichnis gelegt ;)



Gruß
 
Du hast ein paar Header des SDK in einen anderen Ordner kopiert und den Rest im alten gelassen?
Das kann ja nicht gutgehen.
Lass das SDK vollständig

Und das DX-SDK, das ich auf dem Computer hab, hat jedenfalls keine Compileroptionen selber eingestellt.
 
Hi,

für alle die das Buch nicht haben hab ich das Projekt mal hochgeladen:
V02.zip

Ich hab es unter VS2008 und WinVista mit DX 10 SDK nicht zum laufen bekommen ;)
Kann mir jemand einen Hinweis geben?

Gruß
 
Hi,

kann mir niemand sagen, worin das Problem liegt?
Das Problem ist doch relativ klar und eindeutig: der Compiler findet die Headerdateien nicht.

In welchem Verzeichnis befindet sich die d3d.h denn auf deinem Rechner? Dieses Verzeichnis mußt du zu den Additional Include Directories hinzufügen wie Anbrix bereits sagte.

Gruß

PS: Und die nervigen Warnungen kannst du in den Projekteinstellungen unter DisableSpecificWarnings abstellen.
 
Zuletzt bearbeitet:
Hi,

danke für die Antwort.

Ich hab das DirectX 10 SDK im VS verlinkt, ich bin davon ausgeganden, dass da die d3d.h drin ist.
Ich bin grad nicht zu hause und kann das nicht prüfen.
Heut abend guck ich mal nach.


Gruß
 
Zurück