Problem mit dem Einbinden von DirectShow
-
Hi @ all,
Ich möchte über eine Webcam(oder Kamera), in C++ ein live Bild darstellen lassen.
Auf der Seite (http://www.codeproject.com/audio/dxcapture.asp) Gibt es ein passendes Beispiel dafür.Ich habe alle Header Dateien eingebunden, trotzdem bekomme ich folgende Fehlermeldung:
Fehlermeldung Anfang //
DXCapture.cpp
c:\programme\microsoft directx 9.0 sdk (february 2005)\extras\directshow\include\strmif.h(1024) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'HSEMAPHORE'
c:\programme\microsoft directx 9.0 sdk (february 2005)\extras\directshow\include\strmif.h(1024) : fatal error C1004: Unerwartetes Dateiende gefunden
DXCaptureDlg.cpp
c:\programme\microsoft directx 9.0 sdk (february 2005)\extras\directshow\include\strmif.h(1024) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'HSEMAPHORE'
c:\programme\microsoft directx 9.0 sdk (february 2005)\extras\directshow\include\strmif.h(1024) : fatal error C1004: Unerwartetes Dateiende gefunden
VMR_Capture.cpp
c:\programme\microsoft directx 9.0 sdk (february 2005)\extras\directshow\include\strmif.h(1024) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'HSEMAPHORE'
c:\programme\microsoft directx 9.0 sdk (february 2005)\extras\directshow\include\strmif.h(1024) : fatal error C1004: Unerwartetes Dateiende gefunden
Generieren von Code...
Fehler beim Ausführen von cl.exe.DXCapture.exe - 6 Fehler, 0 Warnung(en)
Fehlermeldung Ende //
In „Extras -> Option -> Verzeichnisse -> Include-Dateien“ habe ich die Einbindung raus genommen:
“C:\PROGRAMME\MICROSOFT DIRECTX 9.0 SDK (FEBRUARY 2005)\EXTRAS\DIRECTSHOW\INCLUDE”Danach bekomme ich folgende Fehlermeldung:
Sogar wenn ich dshow.h direkt einbinde funktioniert es nicht.
Fehlermeldung Anfang //
DXCapture.cpp
c:\uuu\prog\vmr_capture.h(33) : fatal error C1083: Include-Datei kann nicht geöffnet werden: 'DShow.h': No such file or directory
DXCaptureDlg.cpp
c:\uuu\prog\vmr_capture.h(33) : fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'DShow.h': No such file or directory
VMR_Capture.cpp
c:\uuu\prog\vmr_capture.h(33) : fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'DShow.h': No such file or directory
Generieren von Code...
Fehler beim Ausführen von cl.exe.Fehlermeldung Ende //
Adios
-
In „Extras -> Option -> Verzeichnisse -> Include-Dateien“ habe ich die Einbindung raus genommen:
“C:\PROGRAMME\MICROSOFT DIRECTX 9.0 SDK (FEBRUARY 2005)\EXTRAS\DIRECTSHOW\INCLUDE”Das war so ziemlich das dümmste was du machen konntest, den dadurch weiß Visual C++ ja nicht wi es die Datei dshow.h finden soll.
DXCapture.cpp
c:\uuu\prog\vmr_capture.h(33) : fatal error C1083: Include-Datei kann nicht geöffnet werden: 'DShow.h': No such file or directory
DXCaptureDlg.cpp
c:\uuu\prog\vmr_capture.h(33) : fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'DShow.h': No such file or directory
VMR_Capture.cpp
c:\uuu\prog\vmr_capture.h(33) : fatal error C1083: Include-Datei kann nicht geoeffnet werden: 'DShow.h': No such file or directory
Generieren von Code...
Fehler beim Ausführen von cl.exe.Fehlermeldung Ende //
Das heißt genau das, du die Include Verzeichnis nicht bekannt gemacht hast.
Was dir Fehlt ist aber die passende lib.
Du musst bei den Projekteinstellungen dem noch sagen das er nach der
d3dx9.lib d3d9.lib dxerr9.lib
suchen soll. Dann sollte es funktionieren.
-
Ich habe die lib datein Eingebungen, aber es funktioniert trotzdem nicht.
Hast du vileicht noch eine Idee.
-
Hast du auch die lib Dateien von Direct Show eingebunden?
-
strmiids.lib quartz.lib d3dx9.lib d3d9.lib dxerr9.lib
Die ersten beiden sind von dirctshow, soweit ich mich nicht irre. Sind auch eingbunden.
-
OK, Programmierst du den mit der WinAPI oder mit der MFC Bibliothek?
-
MFC
-
Dann musst du bei deinen #include das wie folgt machen:
#include <D3D9.h> // Glaub das brauchst de für DShow nicht unbedingt #include <dshow.h> #include <mmsystem.h>
-
Hast das prog auch an?
Ich bin nicht sicher was du meinst, aber ich habe #include <mmsytem.h> reingenommen, keine reaktion.
-
Noch ein verzweifelter versuch!!
Ist denn niemand da der das Problemm lösen kann??
-
Also bei mir funzt es, wenn ich
#include <dshow.h> #include <mmsystem.h>eingebe.
Zeig mal deinen Code. ODer nimm mal als Libs:
d3d9.lib d3dx9d.lib d3dxof.lib dxerr9.lib winmm.lib dxguid.libIch weiß es nicht genau, da ich sleber nur mit danderen Teilen der DirectX arbeite!
-
Ich habe ein anderes Beipiel ausprobiert, aber es kommt genau das selbe Prob.
libs hab ich alle eingebunden und mmsystem.h auch implementiert.Wieso funktioniert es bei dir, was hast du für eine c++ Version
was hast du für eine SDK Version Installiert.
-
Also, ich hab Visual Studio 6.0 mit SP 6 und dann noch nen nettes SDK von 2004, weiß aber nicht welches. Muss ich später mal nachgucken
-
Also ich mach das hier mit einem Kolegen auf Zwei Rechner ich hab 6.0 Pro.
Er 2003 jetzt gerade hats bei Ihm geklappt.
Ich vermutte stark das Irgentwas mit meiner Version nicht klappt.
Am SDK liegt es nicht weil ich SDK Feb 2005 hab und du 2004.
-
Es lag an meiner Version.
Danke du richtig weiter geholfen!!Chris
-
mir richtig weiter geholfen
-
mist... Danke du hast mir richtig weitergeholfen.
-
ich habe genau das selbe Problem.
Welche Version hast du denn damit das funktioniert?Danke Erich
-
Welche Version meint Ihr.
Bei Visual 2003 C++.net (7.1) klappt mit DirectShow alles ohne Probleme.
Aber mein Programm wo ich DirectShow einbinden will läuft noch mit Visual C++ 6.0 Prof. Da habe ich die gleichen Fehlermeldungen.
Währe zur Zeit, zu viel Action auf 2003 umzusteigen
Ich arbeite mit DirectX SDK 2005 Februar.Vielen Dank im Voraus
Alex