"Stiller" Error verursacht Probleme [C++ Builder 2009]



  • Ich bin mir nicht sicher wo genau das hier hingehört, aber dieser Error ist, denke ich, die Ursache des Problems:
    E2027: Eine Speicheradresse muss verwendet werden.

    Er kommt nicht direkt im Debugger zum Vorschein, nur wenn ich einen Haltepunkt setze und die Variablen auf Werte prüfe, kommt das bei QueryInterface.

    //Hinzufügen eines Interfaces zu einem COM
    pGraphBuilder->QueryInterface(IID_IMediaControl, (VOID**)&pMediaEv);
    

    Ich schreibe mir gerade einen MediaPlayer mit DirectShow. Im Moment beschränke ich mich nur eine Datei abzuspielen (mit RenderFile() und Run() ). Das funktioniert auch alles perfekt, NUR: Ich sehe kein Bild, sondern höre nur den Ton.

    VideoControl::VideoControl(HWND WindowForLEDs, HINSTANCE ProgramInstance) {
    	HRESULT Result;
    
    	Result = CoInitializeEx(NULL,COINIT_MULTITHREADED);
    	// Create the FGM-device....
    	Result = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,
    					 (VOID**)&pFG);
    
    	 if (SUCCEEDED(Result)) {
    		Result = pFG->QueryInterface(IID_IMediaControl,(VOID**)&pMediaC);
    		Result = pFG->QueryInterface(IID_IMediaEvent, (VOID**)&pMediaEv);
    	} else {
    		MessageBox(NULL,L"Failed", L"Error",MB_OK);
    	}
    }
    

    und

    void VideoControl::PlayFile(void){
    	pFG->RenderFile(L"C://TEST.avi",NULL);
    	pMediaC->Run();
    	}
    

    Achja, ich verwende meine eigene Klasse "VideoControl", wo

    IGraphBuilder* pFG;
    	IMediaControl* pMediaC;
    	IMediaEvent*   pMediaEv;
    

    im private-Teil der Klasse stehen.

    Der Debugger gibt auch noch eine Warnung aus:
    [BC32 Warnung] strmif.h(16254): W8058 Vorcompilierter Header kann nicht erzeugt werden: initialisierte Dateien im Header.

    Google spuckt zwar ein,zwei Seite über E2027 aus, aber in anderem Kontext, und das Programm lässt sich auch nicht kompilieren, was bei mir ja funktioniert.

    Die HRESULT-Werte werden bei mir überprüft und sind auch alle S_OK.

    Ich danke schon voraus für eure Hilfe, ich weiß im Moment nicht mehr weiter...



  • ich hab durch Zufall meine alten Beitrag hier entdeckt und will mir mal selber antworten:

    Der "stille" Error hat nichts mit dem fehlenden Bild zu tun. Ich hatte nur keine Codecs für die Videos installiert, jedoch hat es DirectShow irgendwie geschafft den Ton zu dekodieren und abzuspielen.


Log in to reply