| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| alias Mini JLI'ler
 
 
 
 Anmeldedatum: 04.02.2007
 Beiträge: 7
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 04.02.2007, 10:39    Titel: [Kapitel 19 DirectXGraphics] Linker Fehler (?) |   |  
				| 
 |  
				| Hallo 
 Auf grund eines Schulprojekts versuche ich ein wenig DirectX zu lernen. Deswegen habe ich mir das buch jli Spielerprogrammierung mit DirectX gekauft. Bis zu Kaptitel 19 hat noch alles geklappt, aber jetzt gibs probleme. Ich hoffe hier könnt mir weiterhelfen.
 
 Einen quelltextfehler schließe ich eigentlich aus, da ich inzwischen den gleich Quelltext benutze der der auf der CD zum Kapittel 19 DirectXGraphics ist.
 
 Aber zum fehler:
 In Kapittel 19 werden zum ersten mal DX Bibliotheken verwendet um z.B. die Funktion Direct3DCreate9(D3D_SDK_VERSION) ausführen zu können. Deshalb müssen die entsprechenden Bibliotheken dem Projekt hinzugefügt werde. Ich denke hier muss ich irgendwas falsch machen, leider weiss ich nicht was
 
 
   
 Bei der Angabe der lib-Ordner war mir nicht klar welchen ordner ich jetzt genau einbinden muss (../lib oder ../lib/x86) da im buch beides gesagt wird. Deshalb hab ich beide Pfade angegeben.
 
   
 
 Bei den Bibliotheken hab ich auch eine absolute Pfadangabe versucht, ohne Erfolg.
 
 
   
 
 Und als Fehlermeldung bekomme vom Microsoft Visual C++:
 
 -------------- Build: default in DirectXGraphics ---------------
 Execution of 'cl.exe /nologo /ML /Gd /GX /O2 /W3  /I"C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Include" /I"C:\Programme\Microsoft Visual C++ Toolkit 2003\include" /I"C:\Programme\Microsoft Platform SDK\Include"  /c DirectXGraphics.cpp /Fo.objs\DirectXGraphics.obj' in 'D:\schule\nta - aik - projekt\buch jli sidX\19.0\DirectXGraphics' failed.
 
 Und vom GNU GCC Compiler (den ich normalerweise benutze):
 
 -------------- Build: default in DirectXGraphics ---------------
 Compiling: DirectXGraphics.cpp
 Linking executable: DirectXGraphics.exe
 .objs\DirectXGraphics.o(.text+0x360):DirectXGraphics.cpp: undefined reference to `Direct3DCreate9@4'
 collect2: ld returned 1 exit status
 Process terminated with status 1 (0 minutes, 1 seconds)
 1 errors, 0 warnings[/img]
 
 ich danke euch schon mal
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| manu Super JLI'ler
 
  
 Alter: 36
 Anmeldedatum: 09.03.2006
 Beiträge: 327
 Wohnort: allgäu (DE)
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 04.02.2007, 10:49    Titel: |   |  
				| 
 |  
				| Hi, 
 binde mal nur den ordner /lib/x86 ein.
 
 und dann halt noch die d3d9.lib dem Projekt hinzufügen. Entweder in den Projektoptionen wie warscheinlich im Buch beschrieben __oder__ per Präprozessor-Direktive direkt zu Beginn im Code.
 
 
  	  | CPP: |  	  | #pragma comment(lib, "d3d9.lib") | 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| alias Mini JLI'ler
 
 
 
 Anmeldedatum: 04.02.2007
 Beiträge: 7
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 04.02.2007, 12:46    Titel: |   |  
				| 
 |  
				| Habs probiert. Leider immer noch das selbe. |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 04.02.2007, 14:47    Titel: |   |  
				| 
 |  
				| Soweit ich weiß, ist die Reihenfolge der Verzeichnisse, die du angibst, auch wichtig. Hast du mal versucht, da ein bisschen rumzuspielen? 
 Hast du mal geschaut, ob die Libs überhaupt in dem Verzeichnis existieren?
 
 Wenn alles nichts hilft, würde ich mal das SDK und/oder deine IDE neu installieren.
 _________________
 www.visualgamesentertainment.net
 Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
 (1) Realtime Developer Testing and Debugging Console
 
   Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
 Hilf Schäuble! Damit er auch was findet...
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| alias Mini JLI'ler
 
 
 
 Anmeldedatum: 04.02.2007
 Beiträge: 7
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 10.02.2007, 10:47    Titel: |   |  
				| 
 |  
				| Ne, hat alles leider nichts geholfen   
 Hmm . . . Was vielleicht noch zu sagen wäre, wenn ich die zeile
 
 lpD3D = Direct3DCreate9(D3D_SDK_VERSION);
 
 auskommentiere, kann ich kompielieren und das Programm starten. Dann tut es aber nicht viel.
 
 Woran kann es denn liegen das Direct3DCreate9() nicht gefunden wird?
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 10.02.2007, 11:02    Titel: |   |  
				| 
 |  
				| Kennt der etwa nur D3DCreate nicht, aber die anderen D3D Funktionen und Objkete und was weiß ich ws doch? Das ist eigentlich komisch. _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| The Lord of Programming Living Legend
 
  
 Alter: 38
 Anmeldedatum: 14.03.2003
 Beiträge: 3122
 
 Medaillen: Keine
 
 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| alias Mini JLI'ler
 
 
 
 Anmeldedatum: 04.02.2007
 Beiträge: 7
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 11.02.2007, 09:55    Titel: |   |  
				| 
 |  
				| Jetzt ist mir noch was aufgefallen. Wenn ich die Beispielprogramme aus dem buch deinstalliere und wieder
 installiere ist es mir möglich die Beispielprogramme zu Kompilieren und
 auszuführen. Drücke ich jedoch auf Rebuild bekomme ich den oben genanten
 Meldungen und ich kann nicht mehr ausführen.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 11.02.2007, 13:44    Titel: |   |  
				| 
 |  
				| das könnte daran liegen, dass die beispiele ausm buch vorkompiliert sind und der beim ersten Benutzen einfach nur die fertige exe startet. Beim rebuild wird dann neu erstellt mit deinem linker... 
 Gruß DXer
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Reboot Mini JLI'ler
 
  
 
 Anmeldedatum: 24.01.2007
 Beiträge: 23
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 11.02.2007, 15:50    Titel: |   |  
				| 
 |  
				| Du brauchst ein DevPack dafür. Bei Dev-C++ hat man das selbe Problem. 
 Probier's mal damit. Es kann sein, dass du die Libs manuell kopieren musst.
 http://devpaks.org/details.php?devpak=136
 
 Der Linker kann mit den Libs der Form .lib wenig anfangen. Du brauchst welche im .a Format. Und diese sind im DevPack bei.
 _________________
 Sprachen: C/C++, C#, Assembler (16-Bit), QuickBASIC
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Christian Rousselle Site Admin
 
  
 Alter: 49
 Anmeldedatum: 19.07.2002
 Beiträge: 1630
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 11.02.2007, 21:55    Titel: |   |  
				| 
 |  
				| Man braucht kein DevPack, ich kann es kompilieren. Kannst du nochmal alle Einstellungen nochmal prüfen. |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| alias Mini JLI'ler
 
 
 
 Anmeldedatum: 04.02.2007
 Beiträge: 7
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.02.2007, 12:41    Titel: |   |  
				| 
 |  
				| Ja klar. Wenn bis her niemand sonst diese Probleme hier gemeldet hat, ist es fast sicher das ich was falsch gemacht habe. 
 Aber jetzt mal alles schrittweise durchgehen:
 
 - Code::Block deinstallieren und alle Einstellungen löschen
 - Microsoft Plattform SDK deinstallieren
 - Microsoft Visual C++ Toolkid 2003 Deinstallieren
 - Microsoft DirectX 9.0 SDK Update (Oktober 2005) deinstallieren
 - Jetz lern ich Spieleprogrammierung mit DirektX deinstallieren
 - PC neustarten
 
 - Microsoft Visual C++ Toolkit 2003 installieren
 - Microsoft Plattform SDK installieren, bei der Installation Typical auswählen
 - Code::Blocks installieren
 - Beispielprogramme installieren
 
 Im Code::blocks Compiler Settings
 - Microsoft Visual C++ Toolkid 2003 als default-Kompiler setzen
 - Flag Enable warnings level 3 setzen
 - Flag Maximize Speed setzen
 - Flag Enable C++ Exception Handling setzen
 - Flag __cdecl calling convention setzen
 - Flag Singel-threaded runtime Library setzen
 
 Reiter Directories / Compieler
 - C:\Programme\Microsoft Visual C++ Toolkit 2003\include
 - C:\Programme\Microsoft Platform SDK\Include
 Reiter Directories / Linker
 - C:\Programme\Microsoft Visual C++ Toolkit 2003\lib
 - C:\Programme\Microsoft Platform SDK\Lib
 
 - Microsoft DirectX 9.0 SDK installieren
 
 Reiter Directories / Compieler und Linker
 - C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Include
 - C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Lib\x86
 Hinzugefügt und nach oben geschoben.
 
 Beispielprogramm läst sich Kompilern. Nachdem ich auf rebuild klicke läst es sich nicht mehr Kompiliren.
 
 Mehr fällt mir nicht ein. Keine Ahnung was ich vergessen hab.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.02.2007, 13:00    Titel: |   |  
				| 
 |  
				| d.h. du kannst jedes Projekt compilieren, aber nur einmal? Bei Visaul Studio zumindest gibt es eine Funktion, das Projekt "nuer" erstellen zu lassen. Das bedeutet, dass alle Temporären Dateien (*.obj und son Kram) gelsöcht werdne und neu erstellt werden. Dann müsste es eigneltich so sein, als ob du es nie erstellt hättest. Zwar ein komische Problem, aber ne Idee wärs.
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| alias Mini JLI'ler
 
 
 
 Anmeldedatum: 04.02.2007
 Beiträge: 7
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.02.2007, 14:36    Titel: |   |  
				| 
 |  
				| Nicht ganz. Ich kann die Beispielprogramme auch mehrmals compilieren, aber nicht bauen (sagt man das so?). Also das zusammenfügen funktioniert nicht. So interpretiere ich zumindest. |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.02.2007, 14:49    Titel: |   |  
				| 
 |  
				| äh, also einfach ein LInker fehelr, aber das kompilieren klappt? Dann liegts ja doch nur an den Linkereinstellungen.
 Wie siehts mit der dxguid.lib aus?
 Ist die eingebunden?
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |