JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=b076a04590365ada0039d6e0d8b513e6Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Direct3D (Buch Kapitel 20) Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
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

BeitragVerfasst am: 25.11.2008, 19:02    Titel: Direct3D (Buch Kapitel 20) Problem Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
User_User
JLI'ler



Anmeldedatum: 05.08.2004
Beiträge: 137

Medaillen: Keine

BeitragVerfasst am: 25.11.2008, 21:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 26.11.2008, 13:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
User_User
JLI'ler



Anmeldedatum: 05.08.2004
Beiträge: 137

Medaillen: Keine

BeitragVerfasst am: 26.11.2008, 16:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
User_User
JLI'ler



Anmeldedatum: 05.08.2004
Beiträge: 137

Medaillen: Keine

BeitragVerfasst am: 26.11.2008, 18:05    Titel: Antworten mit Zitat

Ich habe dxguid.lib vergessen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
User_User
JLI'ler



Anmeldedatum: 05.08.2004
Beiträge: 137

Medaillen: Keine

BeitragVerfasst am: 27.11.2008, 11:36    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 29.11.2008, 16:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 29.11.2008, 16:13    Titel: Antworten mit Zitat

... 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\" ... Very Happy jetzt tut alles !!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum