Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Robin Junior JLI'ler
Alter: 30 Anmeldedatum: 29.10.2008 Beiträge: 73 Wohnort: Inneringen Medaillen: Keine
|
Verfasst am: 25.11.2008, 19:02 Titel: Direct3D (Buch Kapitel 20) Problem |
|
|
Hi bin jetzt bei Christians Buch auf Kapitel 20 und wenn ich jetzt irgrndwas Compilen will kommt das...(das ist jetzt das D3DGDI von Kapitel 20):
Direct3D.obj : error LNK2019: unresolved external symbol _D3DXCreateFontIndirectA@12 referenced in function "protected: void __thiscall CDirect3D::CreateFontA(void)" (?CreateFontA@CDirect3D@@IAEXXZ)
Direct3D.obj : error LNK2019: unresolved external symbol _DXGetErrorDescription9A@4 referenced in function "public: int __thiscall CDirect3D::Init(struct HWND__ *,int)" (?Init@CDirect3D@@QAEHPAUHWND__@@H@Z)
Direct3D.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "public: int __thiscall CDirect3D::Init(struct HWND__ *,int)" (?Init@CDirect3D@@QAEHPAUHWND__@@H@Z)
D3DGDI.exe : fatal error LNK1120: 3 unresolved externals
Kann mir da jemand helfen?? |
|
Nach oben |
|
|
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 25.11.2008, 21:21 Titel: |
|
|
1) Hast du folgende Dateien zu deinem Projekt hinzugefügt?
d3d9.lib d3dx9.lib dxerr9.lib
unresolved external symbol heißt, dass u. a. folgende Symbole nicht erkannt werden,
D3DXCreateFontIndirect
DXGetErrorDescription9
welche unter anderem in
referenced in function "protected: void __thiscall CDirect3D::CreateFontA(void)"
Wenn 1) nichts brachte, füge
#include <d3d9.h>
#include <d3dx9.h>
#include <dxerr9.h>
zur Header-Datei Direct3D.h hinzu |
|
Nach oben |
|
|
Robin Junior JLI'ler
Alter: 30 Anmeldedatum: 29.10.2008 Beiträge: 73 Wohnort: Inneringen Medaillen: Keine
|
Verfasst am: 26.11.2008, 13:58 Titel: |
|
|
Meinst du des mit dem
"1) Hast du folgende Dateien zu deinem Projekt hinzugefügt? "
(Soll die die drei *.lib dateien ins gleiche verzeichnis tun)
meinst du mit include ?
muss ich was mit meinen Compileroptionen ändern?
(C:\Programme\Microsoft DirectX SDK (June 2007)\Lib\x86) |
|
Nach oben |
|
|
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 26.11.2008, 16:49 Titel: |
|
|
Die header-Dateien sollten bei den Beispielen aus dem Buch schon vorhanden sein. Wahrscheinlich musst du die zugeöhrigen lib-Dateien zum Projekt hinzufügen.
Ich weiß nur wie ich lib-Dateien bei meinem
Microsoft Visual Studio .NET 2003 hinzufügen
kann,
bei anderen C++-Compilern musst du anders vorgehen.
1) Menü Projekt wählen
2) Untermenü Eigenschaften von Programmname
3) Auf der Liste mit den Bildern von Ordnern Linker wählen
4) Wenn die Elemente des Ordners Linker angezeigt werden Eingabe wählen
5) Nun kannst du in einem Fenster rechts als Erstes bei Zusätzliche Abhängigkeiten die lib-Dateien eingeben (durch Leerzeichen getrennt).
d3d9.lib d3dx9.lib dxerr9.lib
Wenn du einen anderen Compiler hast, hilft dir vielleicht folgendes Kapitel weiter (wenn die Kapitelfolge gleichgeblieben ist):
19.2 Der erste Einsatz von DirectX Graphics
19.2.1 Vorbereitungen |
|
Nach oben |
|
|
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 26.11.2008, 18:05 Titel: |
|
|
Ich habe dxguid.lib vergessen. |
|
Nach oben |
|
|
User_User JLI'ler
Anmeldedatum: 05.08.2004 Beiträge: 137
Medaillen: Keine
|
Verfasst am: 27.11.2008, 11:36 Titel: |
|
|
Eigentlich sollten auch die lib-Dateien bei den Beispieldateien vorhanden sein.
1) Hast du eine evtl. vorhandenes DirectX SDK deinstalliert
und das DirectX SDK auf der CD installiert?
2) Die Verzeichnisse, wie in Kapitel 17 beschrieben, als allererstes angegeben, da es sein kann, dass dort noch ältere Einträge von einer älteren DirectX-Version stehen?
Hast du dies durch, ist folgendes okay und alles sollte funktionieren:
a) Richtiges DirectX SDK
b) Richtige Verzeichnisse angegeben(ist wahrscheinlich in Ordnung)
c) Lib-Dateien hinzugefügt (schon vorhanden)
d) Header-Dateien hinzugefügt (schon vorhanden)
Eigentlich sollte wenn b) nicht vorliegt, eine Fehlermeldung vorliegen, dass die Lib-Dateien und Include-Dateien nicht gefunden werden, was nicht der Fall ist.
d) In der Datei Direct3D.h sollten folgende include-Anweisungen stehen:
#include <d3d9.h>
#include <d3dx9.h>
#include <dxerr9.h>
Wenn es dann nicht klappt, muss ich passen. Wie gesagt die Fehlermeldungen sagen aus, dass Funktionen aus der Utility-Library und der Library für DirectX-Fehlermeldungen in der Datei Direct3D.cpp nicht erkannt werden. Deshalb gehe ich davon aus, dass der eingestellte Zeichensatz okay ist. |
|
Nach oben |
|
|
Robin Junior JLI'ler
Alter: 30 Anmeldedatum: 29.10.2008 Beiträge: 73 Wohnort: Inneringen Medaillen: Keine
|
Verfasst am: 29.11.2008, 16:08 Titel: |
|
|
so hab jetzt alles so gemacht wie gesagt und jetzt kommt der fehler:
LINK : fatal error LNK1181: cannot open input file 'd3d9.lib' |
|
Nach oben |
|
|
Robin Junior JLI'ler
Alter: 30 Anmeldedatum: 29.10.2008 Beiträge: 73 Wohnort: Inneringen Medaillen: Keine
|
Verfasst am: 29.11.2008, 16:13 Titel: |
|
|
... sorry hab grad an den einstellungen noch was geändert hatte "C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Lib" statt "C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Lib\x86\" ... jetzt tut alles !!! |
|
Nach oben |
|
|
|