DirectX "stürzt ab"

Code::Blocks verwendet MinGW
Nein, deins nicht. Fehlermeldungen sind vom Microsoft Compiler.
Eine Einstellung "full command line" habe ich weder bei code:.blocks noch bei vc++2008 gefunden.
In meinem engl. ist es Settings->Compiler and debugger...

Dann den Compiler auswählen für den die Einstellungen geändert werden sollen, bei den Tabs im rechten Bereich "Other settings" auswählen. Dort die Einstellung Compiler logging ändern.
Die Bibliothek wurde (im Quellcode) in beiden Dateien angegeben(Debug/Release)
Wie? Zeigen.
\edit:
Im Anhang müsste sich die .vcproj Datei vom Beispielprogramm aus dem Buch befinden (als .txt) ,da ich noch nicht sehr viel Erfaahrung mit diesem Forum habe schreibe ich sie noch einmal als Code
Warum die Datei aus dem Buch? Die funktioniert doch. :confused: In deiner Datei stimmt irgendwas nicht. Und es reicht wenn du die Datei als .txt anhängst.

Gruß
 
Zuletzt bearbeitet:
nun habe ich "full command line" angegeben
Als Compiler müsste MinGW verwendet werden

Ich habe auch probiert einfach die Datei aus dem Buch zu kompilieren um zu überprüfen, ob es am Quellcode, oder am Compiler liegt. Auch bei dem Beispielprogramm trat der Fehler auf.

Bei meinem Programm konnte ich keine .vcproj Datei finden

Hier die Einbindung der Engine und das Build Log:
Build Log:
Code:
-------------- Build: Debug in dreieck ---------------

Linking console executable: bin\Debug\dreieck.exe
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class tbColor & __thiscall tbColor::operator=(class tbColor const &)" (__imp_4tbColor@@QAEAAV0@ABV0@@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbColor::tbColor(float,float,float)" (__imp_0tbColor@@QAE@MMM@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class tbVector3 & __thiscall tbVector3::operator=(class tbVector3 const &)" (__imp_4tbVector3@@QAEAAV0@ABV0@@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbVector3::tbVector3(float,float,float)" (__imp_0tbVector3@@QAE@MMM@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbColor::tbColor(void)" (__imp_0tbColor@@QAE@XZ) referenced in function "public: __thiscall SVertex::SVertex(void)" (0SVertex@@QAE@XZ)
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbVector3::tbVector3(void)" (__imp_0tbVector3@@QAE@XZ) referenced in function "public: __thiscall SVertex::SVertex(void)" (0SVertex@@QAE@XZ)
bin\Debug\dreieck.exe : fatal error LNK1120: 6 unresolved externals
Process terminated with status 1120 (0 minutes, 0 seconds)
7 errors, 0 warnings

Einbindung der Engine:
Code:
#include <d3d9.h>
#include <d3dx9.h>
#include <TriBase.h>
#include <windows.h>
 
nun habe ich "full command line" angegeben
Bei welchem Compiler?
Als Compiler müsste MinGW verwendet werden
Müßte, wird aber nicht. Die Fehlermeldungen sind immer noch vom Microsoft Compiler. Rechtsklick auf's Projekt->Build Optionen... Dort das obere Projekt im Baum links auswählen, Selected Compiler auf GNU GCC stellen.
Ich habe auch probiert einfach die Datei aus dem Buch zu kompilieren um zu überprüfen, ob es am Quellcode, oder am Compiler liegt. Auch bei dem Beispielprogramm trat der Fehler auf.
Und das Projekt wurde korrekt konvertiert vom Visual Studio?
Bei meinem Programm konnte ich keine .vcproj Datei finden
Einbindung der Engine:
Code:
#include <d3d9.h>
#include <d3dx9.h>
#include <TriBase.h>
#include <windows.h>
Red ich Suaheli? Ich spreche von der Bibliothek, der .lib Datei, nicht von den Headerdateien.

Gruß
 
Ich habe unter Build Options den GNU GCC Compiler angegeben (bwi Code::Blocks) und in die Search Directories die Pfade zu MinGW include und bin eingefügt.
Dann habe ich versucht den .lib Pfad auch in die Link Libraries einzufügen, dass funktionierte nur eingeschränkt. statt einem Pfad musste ich alle Unterverzeichnisse mitverlinken.
Ich hoffte nun MinGW korrekt eingestellt zu haben doch als ich versucht das Programm zu kompilieren, gab CodeBlocks folgenden Fehler aus:
Code:
"dreieck - Debug" uses an invalid compiler. Skipping...
Nothing to be done.
Die anweisung full command line habe ich bei MinGW angegeben. ZUmiindest glaube ich das, denn langsam verliere ich etwas den Überblick.
Die engine habe ich Code::Blocks so angegeben:
Link Libraries:
Code:
..\..\..\..\..\Programme\TriBase\Lib\TriBaseD.lib
..\..\..\..\..\Programme\TriBase\Lib\TriBase.lib
..\..\..\..\..\Programme\TriBase\Lib\StrmIIDs.lib
..\..\..\..\..\Programme\TriBase\Lib\StrmBaseD.lib
..\..\..\..\..\Programme\TriBase\Lib\StrmBase.lib
Search Directories:
Compiler:
Code:
..\..\..\..\..\Programme\TriBase\Include
Linker:
Code:
..\..\..\..\..\Programme\TriBase\Lib
Nun zu deiner letzten Frage:
Das Projekt wurde korrekt konvertiert
 
Ich habe unter Build Options den GNU GCC Compiler angegeben (bwi Code::Blocks) und in die Search Directories die Pfade zu MinGW include und bin eingefügt.
Das bin Verzeichnis ist unsinnig, da sind Binaries drin. Das include Verzeichnis findet MinGW selbst, dürfte aber nichts ausmachen wenn man es trotzdem noch eingibt.
Dann habe ich versucht den .lib Pfad auch in die Link Libraries einzufügen
Den Pfad? Wieso denn das? Der Pfad sollte in die Search Directories->Linker Liste aufgenommen werden. Die Bibliothek dann einfach als "TriBaseD.lib" für das Debug, und als "TriBase.lib" in die Linker Settings unter "Other linker options" eintragen.
dass funktionierte nur eingeschränkt. statt einem Pfad musste ich alle Unterverzeichnisse mitverlinken.
Was meinst du damit?
Ich hoffte nun MinGW korrekt eingestellt zu haben doch als ich versucht das Programm zu kompilieren, gab CodeBlocks folgenden Fehler aus:
Code:
"dreieck - Debug" uses an invalid compiler. Skipping...
Nothing to be done.
Wie sehen die Einstellungen in Settings->Compiler and debugger... : GNU GCC Compiler -> Toolchain executables aus? (screenshot hier anhängen).
Die engine habe ich Code::Blocks so angegeben:
Link Libraries:
Code:
..\..\..\..\..\Programme\TriBase\Lib\TriBaseD.lib
..\..\..\..\..\Programme\TriBase\Lib\TriBase.lib
..\..\..\..\..\Programme\TriBase\Lib\StrmIIDs.lib
..\..\..\..\..\Programme\TriBase\Lib\StrmBaseD.lib
..\..\..\..\..\Programme\TriBase\Lib\StrmBase.lib
Das ist falsch, du mußt entweder die Debug Version oder die Release Version der Bibliotheken nutzen. Siehe oben.

Gruß
 
@ Deepthroat Die fehlerhaften Einstellungen habe ich glaube ich behoben, vielen Dank für die guten Tipps.
Hier sind die Screenshots von allen Einstellungen die ich bei CodeBlocks vorgenommen habe.

Hoffentlich lässt sich das Problem jetzt lösen

Um alle Fragen zu beantworten:
Ich benutze sowohl vc++2008 als auch Code::Blocks.
Beides funktioniert nicht.
Erst habe ich vc++ toolkit 2003 als Compiler verwendet, bin aber auf MinGW umgestiegen.
Die letzten paar Tips sollten Code::Blocks zum Laufen bringen.
 
oh, keine Ahnung, warum die nicht angehängt wurden, hatte sie hochgeladen.
Also noch einmal

Oh wieder nicht. Also noch einmal.
compiler settings linker.JPG

global compiler settings 1.JPG

global compiler settings 2.JPG

global compiler settings 3.JPG

project build options debug linker settings 1.JPG

project build options debug linker settings 2.JPG

project build search directories 1.JPG

project build search directories 2.JPG

project build search directories 3.JPG

toolchain executables.JPG

Mein Fehler. Der zweite Versuch hatte doch funktioniert, also war der Dritte überflüssig.

Sollte ein Moderator dies lesen: Falls sie vorhaben eine Version der Bilder der Übersicht zugunsten zu löschen, so nehmen sie bitte die zweite, und nicht die Dritte.
Ich glaube die Qualität der Bilder der Dritten Version ist besser.
 
Moin,

"TriBaseD.lib" ist KEINE "Linker Option", sondern eine Programmbibliothek ! !

Trag sie mal links ein !

Gruß
Klaus
 
Zurück