Einfach D3D9 Versuch geht schief (Dev-C++)
-
Hallo,
Ich habe das D3D9 Devpack installiert, doch beim kompilieren von
/* * Versuch zum Erstellen einer Direct3D Schnittstelle * 29. September 2005 */ /* Includes */ #include <windows.h> #include <d3d9.h> /* Libraries einbinden */ #pragma comment(lib,"d3d9.lib") //Wird die gebraucht? #pragma comment(lib,"libd3d9.a") #pragma comment(lib,"libdxguid.a") //Gibt ein COM-Objekt frei template<typename T> inline void ReleaseObject(T*& object) { if (object != NULL) { object->Release(); object = NULL; } } int WINAPI WinMain (HINSTANCE Instance, HINSTANCE PrevInstance, LPSTR Argument, int Show) { PDIRECT3D9 Direct3D = Direct3DCreate9(D3D_SDK_VERSION); ReleaseObject(Direct3D); return 0; }kommt dieser Linker-Fehler: [Linker error] undefined reference to `Direct3DCreate9@4'
Könnt ihr mir helfen?

-
*schmarn*
-
Wie auch auf Spieleprogrammierer.de empfehle ich dir den Compiler zu wechseln.
Gruß
-
das mit dem pragma ist M$ spezifisches Zeug. Unter Dev-Cpp musst du verwendete Libs unter
Tools -> Compiler Optoins -> "add this ... to linker commandline"
oder projekt -> projekt Optionen
angeben.
Damit sollte es funktionieren
PS: der Befehl, den du eintragen musst lautet: -ld3d9
-l : Lib einbinden beim Linken
Danach der Name ohne .a und lib am AnfangEdit2: Hab noch mal nachgesehen. das mit pragma scheint doch zu funktionieren.
Aber unter Tools -> Compiler Optoins -> Directories musst du den richtigen Pfad einstellen, unter dem die Lib zu finden ist, Vielleicht liegt das daran
-
leo_ schrieb:
#pragma comment(lib,"d3d9.lib") #pragma comment(lib,"libd3d9.a") #pragma comment(lib,"libdxguid.a")Die .lib kann ja gar nicht funktionieren.
-
gurru schrieb:
das mit dem pragma ist M$ spezifisches Zeug. Unter Dev-Cpp musst du verwendete Libs unter
Tools -> Compiler Optoins -> "add this ... to linker commandline"
oder projekt -> projekt Optionen
angeben.
Damit sollte es funktionieren
PS: der Befehl, den du eintragen musst lautet: -ld3d9
-l : Lib einbinden beim Linken
Danach der Name ohne .a und lib am AnfangEdit2: Hab noch mal nachgesehen. das mit pragma scheint doch zu funktionieren.
Aber unter Tools -> Compiler Optoins -> Directories musst du den richtigen Pfad einstellen, unter dem die Lib zu finden ist, Vielleicht liegt das daranSuper, danke, dass mit -ld3d9 hat bestens funktioniert!

-
Jetzt wollte ich auch mal die D3DX Funktionen benutzen (z.B. um Texturen zu laden), und hab dann #include <d3dx9.h> gemacht und bei den Linker Parametern geschrieben: -ld3d9 d3dx9.lib ..
Jetzt gibt mir Dev-C++ aber aus: E:\C++\3D\Makefile.win [Build Error] [test.exe] Error 1
-
Ein lib der Form libx.a bindet man mit -lx ein, wobei man für jede lib -l schreiben muss. wie das mit .lib Dateien geht, weis ich nicht, aber ich glaube, mal gelesen zu haben, dass man dann auch -lx verwenden muss. Aber keine Garantie. Kannst ja mal nach mingw oder g++/gcc und Lib einbinden suchen (Auch linux).
-
Ohh mann, stehts echt immer noch nicht in der FAQ?
Bye, TGGC (Demo or Die)