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

19.12.2012, 00:42

Problem beim Initialisieren der TriBase-Engine Kapitel: 1

Schönen Tag alle mit einander.

Hab mir schon vor ein paar Wochen das Buch: "3D-Spieleprogrammierung mit DirectX 9 und C++" gekauft.

Jedoch scheitere ich bereits im 1. Kapitel bei den Übungsaufgaben wo es heißt, die Engine zu initialisieren und wieder zu beenden.

Ich hab mal eine normale Konsolenanwendung (Visual Studio 2012 Express) erstellt und einfach mal folgenden Code geschrieben:
Selbst verständlich alles wie gesagt verlinkt, Include-, Bibliotheksverzeichnisse, von der Engine, DirectX SDK, und dem Platform SDK, TriBaseD.lib/TriBase.lib per Linker.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <TriBase.h>

using namespace std;

int main(int argc, char *argv[], char *envp[])
{
    if (tbInit())   
    {
    }
    else    
    {   
    }

    tbExit ();

    return 0;
}


1. Fehlermeldung: TriBaseD.dll konnte nicht gefunden werden, nun gut durch ein bisschen googeln bin ich dann darauf gekommen, ich hab dann einfach die besagte Datei ins Projektverzeichnis verschoben, Fehler weg.
2. Fehlermeldung: d3dx9d_30.dll konnte nicht gefunden werden, auch hier hab ich das selbe gemacht und der Fehler verschwand.
3. Fehlermeldung: "Die Anwendung konnte nicht korrekt gestartet werden." (0xc000007b)

Doch hier weiß ich nicht mehr weiter, vielleicht hatte von euch schon mal wer dieses Problem und kann mir da weiterhelfen, wäre top motiviert nachdem ich die Formeln der Matrizen gesehen habe!! :D

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

19.12.2012, 12:57

Liegt die Datei denn im System32 Ordner deines Betriebssystems? Ich glaube sogar dass es zu dem Thema schon einen Thread hier im Forum gibt. Da geht es nicht genau um die DLL, aber um fehlende DirectX DLLs.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

19.12.2012, 22:04

Liegt die Datei denn im System32 Ordner deines Betriebssystems? Ich glaube sogar dass es zu dem Thema schon einen Thread hier im Forum gibt. Da geht es nicht genau um die DLL, aber um fehlende DirectX DLLs.
Welche Datei meinst du??

TriBaseD.dll und d3dxd9_30.dll hab ich ins Projektverzeichnis unter Dokumente/VisualStudio2012/Projects/ConsoleApplication1 geschoben, danach ist der jeweilige Fehler verschwunden.

d3dxd9_30.dll ist weder im System32 Ordner noch im DirectX SDK Ordner vorhanden. Eines was sein könnte ist dass die Datei eine falsche, bzw defekt ist, hab sie mir nämlich runtergeladen. Da ich nicht wusste wo ich sie sonst her bekommen sollte. :D

4

22.12.2012, 14:24

Alles klar, es funktioniert entlich so wie es soll.

Der Fehler (0xc000007b) ist jetzt auch weg. Und die Engine wird wieder heruntergefahren, ganz genau so wie es sein soll. :thumbsup:

Der Fehler lag tatsächlich an der d3dxd9_30.dll. Die Datei war in einem ZIP-Archiv. 1 mal x64. und 2 verschiedene x86 Versionen.

Hatte zuerst die x64 Version genommen, da mein PC ein 64bit System ist dachte ich mir, und ins Projektverzeichnis verschoben, dann trat jedoch der Fehler: 0xc000007b auf.


Hab jetzt aber diese jedoch durch eine von den x86 Versionen ersetzt, und der Fehler ist verschwunden.
Der Code wie oben gezeigt, funktioniert jetzt komplett fehlerfrei!


Auch wenn ich selber darauf gekommen bin, danke für alles!! :thumbsup:

Werbeanzeige