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

27.08.2008, 20:28

Problem mit D3DX9D_30.DLL

Hi!
Folgendes:
Beim Versuch eines der Beispielprogramme vom Source aus in MS Visual 2008 Express zu starten bekam ich den Fehler das eine D3DX9D_30.DLL fehlen würde. Sofort dachte ich das es nur ein Linkfehler sein kann, denn wenn ich das Beispielprogramm nicht mit dem Source nochmal kompilierte funktionierte die exe einwandfrei. Mit erstaunen stellte ich fest das die Verzeichnisse korrekt sind und die besagte D3DX9D_30.DLL wirklich fehlt. Nun erscheint die Fehlermeldung nach jedem Versuch das Programm mit der exe zu starten und beim kompilieren. Die Programme die ich nicht versucht habe zu kompilieren starten mit der exe ohne Probleme. Mit einer anderen IDE als MS Visual 2008 EXP und mit anderem Source+Engine funktioniert das kompillieren ohne probleme, anscheinend wird hier die DLL komischer weise nicht benötigt, sondern nur bei Microsoft oder mit der TriBase Engine. Ich habe es bereits mit dem DirectX SDK aus dem Buch und mit dem neusten von der MS Homepage (August 08) versucht, in beiden Versionen fehlt diese DLL und ich weiss nicht wo ich sie herbekommen soll und vor allem warum ich sie überhaupt benötige. Das Verknüpfen scheint allerdings zu funktionieren ...

Hier nocheinmal der genaue Wortlaut des Fensters:

D3DAbzählung.exe - Komponente nicht gefunden

Die Anwendung konnte nicht gestartet werden, weil die d3dx9d_30.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.


PS: Ich habe die besagte Dll im Internet gefunden, es stellt sich dennoch keine Besserung ein. Das Erstellen in MS Visual 2008 EXPRESS funktioniert zwar wie vorher aber das Ausführen der exe ist weiterhin ein Problem. Wenn ich anstatt Debug Release einstelle wird mir über ein Warnfenster angezeigt das das Proojekt keine Debuginformationen besitzt. Setze ich den Vorgang dennoch fort wird die exe ohne Probleme ausgeführt. Dennoch ist dies keinesfalls eine Lösung.

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

2

28.08.2008, 10:05

Schon probiert die DLL in Windows\System32 zu legen?
Diese DLLs sind für die D3DX-Bibilothek wichtig und ändern sich mit jedem SDK, man sollte sie immer beilegen - also dahin mitreinkopieren, wo sich die exe-Datei befindet.

3

28.08.2008, 13:44

Ups, hab mich vertan ... es war NICHT die debug Variante, also nicht die d3dx9d_30.dll sonder die d3dx9_30.dll die ich im Internet fand. Somit benötige ich weiterhin die d3dx9d.dll. Muss mich wohl verguggt haben ... . Weis jmd wo ich die herbekomme? Bei toymaker habe ich nur die "normale" nicht debug DLL gefunden. Oder liegt das Problem tiefgründiger? Ich meine, warum besitze ich diese Datei eigentlich nicht und warum begnügt sich das Programm nicht einfach mit der d3dx9d_33.dll oder d3dx9_39.dll? Ich hoffe es liegt wirklich nur dadran das diese EINE datei fehlt und nicht noch weitere hinzukommen wenn ich diese irgendwie irgendwann haben sollte. Mir bereitet es nämlich Kopfschmerzen das bei dem DirectX SDK aus dem Buch eine dll fehlen soll um die Beispiele unter debug zum laufen zu kriegen.

Hoffe auf weitere Hilfe thx schonmal im voraus!

mfg HyDr0x

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

28.08.2008, 14:23

Welches DirectX SDK hast du denn installiert. Wenn du einfach nur die richtige d3dx9d.lib linkst, dann sollte es eigentlich keine Probleme dieser Art geben, weil die automatisch die richtige dll lädt. Kann es sein dass du eine "falsche" d3dx9d.lib linkst!? (ist die lib vielleicht im projektbaum hinzugefügt/liegt irgendwo bei den source dateien bei!?)

5

28.08.2008, 14:56

Ich habe wi bereits gesagt das dem Buch beigelegte DirectX SDK installiert, zusätzlich noch das neue August 08 weil ich hoffte das dort wenigstens diese dll vorhanden ist. Fehlanzeige ... . Nunja, ich habe im MS Visual Studio 08 wie im Buch beschrieben (Ich meine hier das Buch 3D Spieleprogrammierung wenn das unklar sein sollte ...) unter EXTRAS -> OPTIONEN -> PROJEKTE UND PROJEKTMAPPEN -> VC++-VERZEICHNISSE unter INCLUDE die Verzeichnisse ...\C++ TriBase\TriBase\Include dann ...\Programme\DirectX 9.0c SDK\Include und ...\Programme\Plattform SDK\Include angegeben, das sollte doch so stimmen. Unter BIBLIOTHEKSDATEIEN habe ich genau das selbe stehen eben nur mit \lib statt \include. Demnach sollten meiner Meinung nach das Plattform SDK. die TriBase Engine und das DirectX SDK verlinkt sein. Allerdings habe ich auch im DirectX SDK Ordner "Developer Runtime\x86" keine d3dx9d_30.dll gefunden ... . Auch im System32 Ordner befindet sich diese dll nicht, nur die d3dx9d_39, d3dx9d_28 und die d3dx9d_33. Wiese nimmt das Programm nicht einfach eine von denen? Warum ist das besagte DirectX SDK nicht kompatibel zu den mitgelieferten Beispielen? Das ergibt keinen Sinn... Diese DLL kann doch nicht einfach abhanden gekommen sein *confused* .

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

28.08.2008, 17:53

Wenn die alte dll nicht vorhanden ist, probiers einmal mit einer neuen. Das wird nicht automatisch gemacht. Wenn er die dll nicht findet, dann findet er sie nicht. Ein Compiler/IDE kann ja nicht erkenne, dass eine ähnlich klingende dll neuer ist.

Ich denke mal, dass die TB da kein Gebrauch von Funktionen macht, die nicht mehr kompatibel sind.

7

28.08.2008, 18:12

Wie soll ichs mit den Neuen probieren? Ich kann ja nur Verzeichnisse angeben und die enthalten ja die neuen dlls schon. Ich verstehe es ja auch nicht, er meckert rum weil genau diese dll fehlt.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

28.08.2008, 18:29

Zitat von »"HyDr0x"«

Wie soll ichs mit den Neuen probieren? Ich kann ja nur Verzeichnisse angeben und die enthalten ja die neuen dlls schon. Ich verstehe es ja auch nicht, er meckert rum weil genau diese dll fehlt.


Was gibts du denn im Linker unter zusätzliche Abhängigkeiten an?

9

28.08.2008, 19:07

Das hier:
tribase.lib d3d9.lib dxerr9.lib odbc32.lib odbccp32.lib
bzw.
tribased.lib d3d9.lib dxerr9.lib odbc32.lib odbccp32.lib für die Debug version mit der der Fehler immer aufkommt.

Das komische ist ja das er den Code problemlos kompilliert doch beim anschließenden Ausführen der exe kommt die Fehlermeldung. Auch außerhalb von MS Visual kann ich die kompillierte exe nicht starten da diese dll zu fehlen scheint. Bevor ich das Beispielprojekt versucht habe auf meinem eigenen Rechner erneut zu kompillieren lief die exe einwandfrei.

OMFG: Ok ich habe jetzt einfach die d3dx9_30.dll, also nicht die Debug version der dll in die d3dx9d_30.dll umbenannt weil ich einfach mal sehen wollte was passiert wenn ich ihm mal gebe was er will und siehe da es läuft wie geschmiert. Keine Fehlermeldung mehr und das Programm funtzt. Natürlich ist das keine Dauerlösung da ich denke das diese "Lösung" nicht unbedingt die ordentlichste Art ist und es früher oder später warscheinlich zu Fehlern führt, dennoch bin ich erstaunt das MS Visual das so schluckt und keine Fehler verursacht. Anscheinend reicht es wenn ich irgendwoher diese dll herbekomme. Kann sie mir jemand zuschicken der sie hatt? Oder gibt es doch noch eine vernünftige Lösung?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

28.08.2008, 19:31

ich tippe mal drauf dass du die tribase nicht selber neu kompilliert hast und die tribase die du verwendest mit einer älteren version der d3dx9d.lib gelinkt wurde. deswegen ist deine tribase.dll jetzt von der alten d3dx9d_30.dll abhängig die bei deinem sdk aber nicht dabei ist...

Werbeanzeige