Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

13.03.2008, 23:40

Wo finde ich d3dx9.h?

Ja Hallo erst mal,
ich hab ein kleines Problem ich lerne zur Zeit das Programmieren mit C++ und DirectX (Kompiler/IDE: Dev-C++).
Microsoft Plattform SDK ist auch installiert.
Es soll ein Fenster mit blauem Hintergrund erzeugt werden.
Beim kompilieren bekomme ich immer diese Fehlermeldung:

[Linker error] undefined reference to `Direct3DCreate9@4'

Als Header hab ich d3d9.h eingebunden.
In meinem Buch steht das ich auch noch d3dx9.h einbinden soll.
Wenn ich das mach kommt:

d3dx9.h: No such file or directory.

(Dafür die andere nicht mehr!)
Wenn ich die Header auf der Festplatte such finde ich keine mit diesem Namen(auch nicht bei *.h)! Das heist für mich das die Datei d3dx9.h nicht da ist aber wo bekomme ich sie her?
(Oder kann mir jemand sagen wie man das Problem sonst lösen könnte?)
Wenn ich eine wichtige Angabe vergessen habe dann schreibt es ruhig ich schick sie dann hinterher!
Ich hoffe ihr könnt mir helfen!

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

13.03.2008, 23:52

Also die sollte in der DirectX SDK dabei sein. Ausser du hast es irgendwie nicht mitinstalliert. Installier sonst mal die neuste Version von DX und probiers nochmal.

Und bist du sicher, dass du sonst alles richtig eingebunden hast?

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

3

14.03.2008, 00:05

Hmm hast du denn das DirectX SDK überhaupt installiertoder nur DirectX?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

14.03.2008, 00:16

Ich würde sagen, wenn er das DirectX SDK nicht installiert hätte, hätte er wesentlich mehr Probleme. ;)

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

5

14.03.2008, 00:26

Nö welche denn. Bei mir ist es zumindest so, dass der weitere Kompiliervorgang der Datei abgebrochen wird, wenn eine Include-Datei fehlt. Die ist auch sinnvoll. Und Linker-Errors gibt es ja erst bei erfolgreichem kompilieren

6

14.03.2008, 09:45

Also die SDK ist auf jeden fall installiert
unter C: Programme Microsoft Platform SDK

oder ist das die/das falsche?
Hab nämlich gerade noch mal von ner anderen CD das SDK installiert und das steht jetzt als:

Microsoft Direct X SDK

im Programme ordner.
Hab jetzt aber keine Zeit zum ausprobieren.
Danke schon mal für die antworten! :D

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

14.03.2008, 10:36

Re: Wo finde ich d3dx9.h?

Zitat von »"prog_EF"«



[Linker error] undefined reference to `Direct3DCreate9@4'



es handelt sich um einen linkerfehler. an einer fehlenden .h datei kann das nicht liegen (wie Fred schon richtig gesagt hat)

du hast nur vergessen die d3d9.lib zu linken ;)

Viktor

Alter Hase

Beiträge: 533

Wohnort: Ludwigshafen

Beruf: Student

  • Private Nachricht senden

8

14.03.2008, 11:03

Wahrscheinlich hast du vergessen - da du ja Dev-C++ verwendest, den include-Ordner in den Compiler-Options hinzuzufügen bzw. eben die d3d.h unter Project/Project Options/Parameters dem Linker hinzuzufügen, um das von dot nochmal zu konkretisieren, wo der header gelinkt werden muss.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

14.03.2008, 11:18

Zitat von »"Stier X"«

Wahrscheinlich hast du vergessen - da du ja Dev-C++ verwendest, den include-Ordner in den Compiler-Options hinzuzufügen bzw. eben die d3d.h unter Project/Project Options/Parameters dem Linker hinzuzufügen


das hat er sicher nicht vergessen, denn dann würde er einen compilerfehler bekommen... (aber das haben wir schon zu genüge diskutiert).

Zitat von »"Stier X"«

um das von dot nochmal zu konkretisieren, wo der header gelinkt werden muss.


sowas habe ich ganz sicher nicht gesagt, denn header werden nicht gelinkt ;)

@op: allerdings hab ich übersehen, dass du Dev-C++ verwendest. Dev-C++ verwendet den mingw compiler, also GCC. mit dem compiler wirst du probleme haben mit dem directx sdk zu arbeiten, da der das .lib format nicht versteht (verwendet ein anderes format für object files).
du musst dir also irgendwoher die dx libs im entsprechenden format besorgen (ka ob und, wenn ja, wo es das gibt).
meine klare empfehlung wärs, Visual Studio anstatt Dev-C++ zu verwenden:
http://www.microsoft.com/express/download/

10

14.03.2008, 11:20

Zitat von »"prog_EF"«

Also die SDK ist auf jeden fall installiert
unter C: Programme Microsoft Platform SDK

oder ist das die/das falsche?
Hab nämlich gerade noch mal von ner anderen CD das SDK installiert und das steht jetzt als:

Microsoft Direct X SDK

Das Platform SDK enthält die Windows-Sachen, das DirectX SDK die DirectX-Sachen -> Du brauchst beide!

Werbeanzeige