Probleme mit DirectShow: Unbehandelte Ausnahme bei 0x00411cbe
-
Hallo,
ich schreibe momentan eine Anwendung welche das Standard Video Input Device finden soll und den Stream rendern soll. Das Projekt wird von VS.NET 2003 ohne jegliche Fehler oder Warnungen kompiliert.
Wenn ich jedoch die Anwendung starte, bekomme ich im Debug-Modus folgende Fehlermeldung:
"Unbehandelte Ausnahme bei 0x00411cbe in StreamCam.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x00000000."
Der Fehler soll laut Debuger im der Zeile sein, wo ich den ICaptureGraphBuilder 2 mit IGraphBuilder verbinden will:
hr = pCapture->GetFiltergraph(&pGraph); if (FAILED(hr)){ printf("- GraphBuilder konnte nicht mit dem CaptureGraphBuilder2 verbunden werden\n"); pGraph->Release(); pCapture->Release(); CoUninitialize(); }
Olcay
-
Schlägt die Funktion denn immer fehl?!?
Ist pGraph ggf. gar nicht gültig hier, so daß ein ->Release() fatal wäre?!?
P.S.: Die Releases generell als "if(pGraph) { pGraph->Release(); pGraph = NULL; }" machen!
-
Sgt. Nukem schrieb:
Schlägt die Funktion denn immer fehl?!?
Ja die Funktion schlägt immer fehl.
Sgt. Nukem schrieb:
Ist pGraph ggf. gar nicht gültig hier, so daß ein ->Release() fatal wäre?!?
Was meinst damit? Ich release pGraph nur wenn GetFiltergraph != S_OK zurück gibt.
-
olcay schrieb:
Sgt. Nukem schrieb:
Ist pGraph ggf. gar nicht gültig hier, so daß ein ->Release() fatal wäre?!?
Was meinst damit? Ich release pGraph nur wenn GetFiltergraph != S_OK zurück gibt.
Eben. Und dann dürfte pGraph == NULL sein.
Und NULL->Release() --> PENG!
-
Sgt. Nukem schrieb:
olcay schrieb:
Sgt. Nukem schrieb:
Ist pGraph ggf. gar nicht gültig hier, so daß ein ->Release() fatal wäre?!?
Was meinst damit? Ich release pGraph nur wenn GetFiltergraph != S_OK zurück gibt.
Eben. Und dann dürfte pGraph == NULL sein.
Und NULL->Release() --> PENG!
Hab das entfernt aber der Fehler ist der selbe. Der Fehler erscheint aber in dem Moment wenn ich dem CaptureGraphBuilder2 den GraphBuilder übergebe.
hr = pCapture->GetFiltergraph(&pGraph);
hr hat im Debug Modus den Wert S_UNEXPECTED
-
Was sagen die Debug Runtimes dazu?
-
Vermutlich schlägt der Funktionsaufruf fehl.
Bye, TGGC (Keine Macht den Dummen)