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

18.04.2010, 00:13

[Erledigt] Kapitel 5 tbMusic macht Probleme

Also hallo erstmal ihr lieben,
hab mir vor kurzem (ca. 1-2 Monate) das Buch 3D-Spiele- Programmierung mit Direct X 9 und C++ geholt.
Ich bin sehr beeindruckt von dem Buch und lese und übe so gut wie jeden Tag damit.
Nun ja die beiden Beiliegenden Spiele auf der CD kann ich beide nicht spielen und hab mir gedacht, da sie ja eh besprochen werden
warte ich vorerst damit mir den Code anzuschauen und lese bis dahin weiter. Nun ja jetzt am Ende von Kapitel 5 habe ich natürlich auch
die tbMusic austesten wollen inklusive dem dazugehörigen Beispielprogramm.

Dieses aber zeigt nach dem D3D Initialisierungsdialog nur ein Fenster mit weißem inhalt an. Desweiteren ist das Fenster an sich nicht zu bewegen
und "reagiert" nicht mehr. Nun hab ich heute fast den ganzen Tag damit verbracht 1. das Beispielprogramm zu debuggen womit ich nach langer
Zeit darauf gekommen bin das er in der TriBase Engine an genau folgendem Punkt stoppt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
tbResult tbMusic::Init(char* pcFilename)
...
// Graph für die Datei erstellen
MultiByteToWideChar(CP_ACP, 0, pcFilename, -1, awcFilename, 256);
if(FAILED(hResult = m_pGraph->RenderFile(awcFilename, NULL)))               <----------------------
{
// Fehler!
TB_ERROR_DIRECTX("m_pGraph->RenderFile", hResult, TB_ERROR);
}
...


Stoppen heißt er gibt nichtmal eine Fehlermeldung, weder beim Debuggen noch in der Log Datei

Nachher habe ich dies natürlich innerhalb eines selbst geschriebenen Testprogramms (auch mit tbMusic)
getestet aber auch hier das selbe.
Was ich jedoch noch nicht getestet habe ist ohne tbMusic und daran werde ich mich jetzt mal machen,
also wenn jemand etwas dazu weiss sagt bitte bescheid.

Edit:
So ich habe jetzt mal eine Main geschrieben die nichts anderes machen soll als ein Musikstück zu spielen. Sie sieht so aus, jedoch passier haargenau das selbe wie
in der tbMusic hoffe hier hat jemand einen Rat.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmd, int Cmd)
{
    int r;
    WCHAR awcSound[256];

    tbInit();

    if( r = tbDoConfigDialog(&g_Config))
    {
        if(r == TB_CANCELED) return 0;
        else
        {
            MessageBox(NULL, "Fehler beim Abzählen von Direct 3D", "Fehler", MB_OK | MB_ICONERROR);
            return 1;
        }
    }

    if(tbDirect3D::Instance().Init(&g_Config, "Soundtest", NULL, NULL))
    {
        MessageBox(NULL, "Fehler beim Initialisieren der Direct 3D Schnittstelle", "Fehler!", MB_OK | MB_ICONERROR);
        CleanUp();
        return 1;
    }

    //Ab hier gehts dann los
    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)(&g_iGraph));
    MultiByteToWideChar(CP_ACP, 0, "Music.mp3", -1, awcSound, 256);

    //Bis RenderFile Funktioniert alles wunderbar aber nun wieder das selbe!
    g_iGraph->RenderFile(awcSound, NULL);
    g_iGraph->QueryInterface(IID_IMediaControl, (void**)(&g_iMediaControl));
    g_iMediaControl->Run();
    tbDoMessageLoop(Move, Render);
    CleanUp();
    return 0;
}


Edit2:
Okay mein Problem ist gelöst. Falls noch jemand das Problem hat: Ich habe den Windows Media Player
Deinstalliert und nebenbei hatte ich noch mehr als ein Codec Pack Installiert wegen ein Paar tests. Naja
und da ich bei Google las das der Media Player usw. irgendwie mit DirectShow in Verbindung stehen kam ich
letztendlich drauf.
War nun irgendwie nen Monolog aber danke trotzdem :P

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Flaxxen« (20.04.2010, 14:07)