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

1

07.12.2011, 14:50

D3DX9D.dll (Nein ich brauch die Datei nicht! Nur eine Frage)

Hey bevor ich jetzt auf die anderen Threads verwiesen werde habe ich eine Frage.

Die D3DX9D.lib ist ja eigentlich nur zum Debuggen gedacht, wenn ich das richtig an dem "D" sehe.
Jetzt wundert mich aber etwas, denn wenn ich die Lib. bei den release Settings weglasse, dann bekomme ich einen einen linker Fehler.
Ok, habe ich mir zuerst nichts dabei gedacht und hab die Lib. einfach wieder gelinkt.
Doch jetzt zu meinem Problem, andere Rechner welche das DirectX SDK nicht besitzen, besitzen auch die DLL nicht.
Müsste man das nicht umgehen können ? Also dass er beim Erstellen der release Version diese Lib. nicht mit einbindet oder so.

Soweit ich dass gesehen habem, ist bei den Beispielprogrammen in den release Settings auch keine D3DX9D.lib gelinkt und dort kommt ja auch kein Fehler.

Achja der linker Fehler kommt übrigens bei der Funktion "D3DXCreateTextureFromFileEx" diese ist wohl bei mir nur in der debug Version vorhanden.


Vielleicht sehe ich den Wald vor lauter Bäumen auch nicht und die Lösung ist ganz einfach.
Hoffe ihr könnt mir helfen.

MfG Noxum
Why so serious ?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.12.2011, 15:01

Die d3dx9.lib ist eine Importlib, d.h. die tut mehr oder weniger nichts andres als eine Referenz auf die dll in deine exe zu packen. Also nein, du kannst das nicht umgehen. Wenn du D3DX benutzen willst, brauchst du die entsprechende dll.

3

07.12.2011, 15:08

Ja, dass ich die D3DX9.lib brauche ist mir kla, es geht mir aber um die debug Version von der Lib (D3DX9 D .lib).
Diese hat der Anwender meines Wissens nach nicht immer auf dem Pc.
Why so serious ?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

07.12.2011, 15:17

Du solltest ja aber auch keine Debug Builds ausliefern!? Die Release dlls hat der Benutzer außerdem auch nicht notwendigerweise auf seinem PC ;)

5

07.12.2011, 15:31

Ja, aber ich gehe mal davon aus, dass jeder der ein DX Spiel spielen möchte auch DirectX installiert hat. Natürlich kann man davon später bei großen Projekten nicht mehr ausgehen.

Naja aber zurück zum Thema, natürlich liefere ich keine Debug Builds aus, aber das ist ja das Problem. Ich stell auf Release doch wenn ich bei den Settings unter Release nicht die debug Version von D3DX9.lib eintrage (also die D3DX9D.lib), dann bekomme ich einen linker Fehler für die "D3DXCreateTextureFromFileEx" Funktion.

Sprich, er kann die Funktion in D3DX9.lib nicht finden.


Edit: Ok wenn man sein Problem nochmal beschreibt, dann kommt man meistens auf die dummen, aber menschlichen Fehler. :pinch:
Habe meinen achso einfachen Fehler gefunden... Ich sollte anstatt den Fehler bei d3dx9d.libzu suchen, lieber den Fehler bei d3dx9.lib suchen, letztere hatte ich nämlich vergessen zu linken.
Naja hatte ich ja doch recht, ich habe den Wald vor lauter Bäumen nicht gesehen. Sorry dass ich deine Zeit verschwendet habe. Habe wohl die ganze Zeit beim durchlesen der Lib's d3d9.lib mit d3dx9.lib verwechselt.

Naja sorry und Danke für deine Hilfe
MfG Noxum
Why so serious ?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Noxum« (07.12.2011, 15:37)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

07.12.2011, 15:47

Die D3DX dll hängt von der jeweiligen SDK Version ab. DirectX ist sowieso von Haus aus auf jedem Rechner drauf, die D3DX dlls aber nicht.

Werbeanzeige