Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

maximilian.klockmann

unregistriert

1

15.10.2010, 14:00

TriBase Engine für 2010

Hallo Leute,

Ich habe seit wenigen Tagen dieses Buch in der 3. Auflage. Doch jedes Beispiel, dass ich verwenden möchte, hat nur Fehler! Zum Beispiel muss ich am anfang immer #undef UNICODE hinzufügen, damit der Code ohne Probleme auszuführen geht.

Doch das ist nicht das Problem. Ich habe die Platform SDK und DirectX SDK installiert, doch trotzdem gibt es immer wieder Verlinkungsfehler!
Ein Beispiel für Listing 2.58 Seite 129:


Fehler6error LNK2001: Nicht aufgelöstes externes Symbol "_DXGetErrorDescription9A@4". ##Pfad##\Visual C++\Erstes Beispiel mit DirectX\Erstes Beispiel mit DirectX\InitDirect3D.obj

Solche Fehler tauchen in jedem Listing auf, sobald alle .lib und .h Datein eingebunden sind! Wie bekomme ich diese Fehler weg?

Würde das mit VS 2005 / 2003 funktionieren? Wenn ja, wo kann ich die noch runterladen?

Gruß

Maximilian Klockmann




PS: Die Beispiel Spiele funktionieren auch nicht

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »maximilian.klockmann« (21.10.2010, 11:21)


2

15.10.2010, 14:59

Hallo

Du solltest unbedingt mal die Suchfunktion bemühen.

chrische

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

15.10.2010, 15:05

Statt #undef UNICODE solltest du lieber in den Projekteigenschaften unter General das Character Set auf Not Set setzen. Dein Linkerfehler kommt daher dass in den aktuellen DirectX SDKs die dxerr9.lib zur dxerr.lib gemacht wurde und auch bei allen Funktionen in dieser lib die 9 aus den Namen genommen wurde. Wenn du das Ding also mit einem aktuellen DX SDK kompilieren willst musst du eben den Code entsprechend anpassen. Was mich nur etwas wundert ist: Dein Fehler kann eigentlich nur auftreten wenn du mit veralteten DirectX Headern kompilierst aber neuere DirectX libs linkst was bedeuten muss dass du mindestens zwei verschiedene DirectX SDKs verwendest!?

maximilian.klockmann

unregistriert

4

15.10.2010, 15:53

also das mit dem UNICODE hat geklappt. Doch mit den DirectX SDK: Ich habe wissentlich nur die 2005 von der CD installiert. von einer anderen Version aufm PC ist mir nichts bekannt. Ich finde auch keine andere. Aber ich suche mal nach einer neuen, vlt. hilft das ja...

maximilian.klockmann

unregistriert

5

15.10.2010, 20:07

also ich hab die alte SDK deinstalliert, und die von Februar 2010 installiert. Es gibt auch beide Datein, dxerr.lib und dxerr9.lib
Ich hab auch VS repariert, doch die Fehler sind immer noch da....soll ich vlt. deinstallieren und neu installieren, oder gibt es andere Lösungen?

6

15.10.2010, 21:12

Mach die 9 hinten weg, bei dem Funktionsaufruf ;)

maximilian.klockmann

unregistriert

7

15.10.2010, 21:20

bei welchem den?? :D wie gesagt: ich hab das Buch erst seit wenigen Tagen, und verlasse mich daher bis jetzt auf die fertigen Listings um es zu erarbeiten.

8

15.10.2010, 21:33

bei TB_ERROR_DirectX findeste funktionsaufrufe von DXGetErrorString9 und DxGetErrorDescription9. Bei beiden hinten die 9 weg, und dann Engine neu kompilieren.
Bzw. wenn du noch die InitDirect3D.cpp nutzt halt dort. Such einfach nach DXGetError und du wirst die entsprechenden stellen finden ;)

maximilian.klockmann

unregistriert

9

15.10.2010, 21:50

Also ich muss gestehen: ich bin blind! ich finde davon überhaupt nichts! Selbst die Suche nicht!

maximilian.klockmann

unregistriert

10

20.10.2010, 19:49

So: habe jetzt alles neu gemacht, und habe in der Tribase den Fehler:



Fehler84error LNK1181: Eingabedatei "dxerr9.lib" kann nicht geöffnet werden. ###\TriBase\LINK

ich habe nach dxerr gesucht, und nur die Include Datei gefunden, und die 9 gelöscht. Wo muss ich noch ändern?

Werbeanzeige