DirectShow sample: AmCap



  • Hallo,

    ich habe versucht das Directshow-Beispiel AmCap mit Visual C++ 2008 Express (englische Version) zu kompilieren und erhalte leider folgende Fehler:

    1>------ Build started: Project: AmCap, Configuration: Debug Win32 ------
    1>Linking...
    1>amcap.obj : error LNK2019: unresolved external symbol "void __stdcall DbgAssert(wchar_t const *,wchar_t const *,int)" (?DbgAssert@@YGXPB_W0H@Z) referenced in function "int __cdecl AppInit(struct HINSTANCE__ *,struct HINSTANCE__ *,int)" (?AppInit@@YAHPAUHINSTANCE__@@0H@Z)
    1>crossbar.obj : error LNK2001: unresolved external symbol "void __stdcall DbgAssert(wchar_t const *,wchar_t const *,int)" (?DbgAssert@@YGXPB_W0H@Z)
    1>SampleCGB.obj : error LNK2001: unresolved external symbol "void __stdcall DbgAssert(wchar_t const *,wchar_t const *,int)" (?DbgAssert@@YGXPB_W0H@Z)
    1>crossbar.obj : error LNK2019: unresolved external symbol "void __cdecl DbgLogInfo(unsigned long,unsigned long,wchar_t const *,...)" (?DbgLogInfo@@YAXKKPB_WZZ) referenced in function "public: __thiscall CCrossbar::CCrossbar(struct IPin *,long *)" (??0CCrossbar@@QAE@PAUIPin@@PAJ@Z)
    1>crossbar.obj : error LNK2019: unresolved external symbol "public: __thiscall CBaseList::CBaseList(wchar_t const *,int)" (??0CBaseList@@QAE@PB_WH@Z) referenced in function "public: __thiscall CGenericList<class CRouting>::CGenericList<class CRouting>(wchar_t const *,int,int,int)" (??0?$CGenericList@VCRouting@@@@QAE@PB_WHHH@Z)
    1>Debug\AmCap.exe : fatal error LNK1120: 3 unresolved externals
    1>Build log was saved at "file://c:\Dokumente und Einstellungen\Renate\Eigene Dateien\Visual Studio 2008\Projects\AMCap\Debug\BuildLog.htm"
    1>AmCap - 6 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    Ich habe folgende Include und Library Dateien verlinkt:

    C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\Common
    C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses
    C:\Programme\Microsoft DirectX SDK (August 2009)\Include
    C:\Programme\Microsoft SDKs\Windows\v6.1\Include
    C:\Programme\Microsoft SDKs\Windows\v6.1\Include\gl

    und

    C:\WinDDK\7600.16385.1\lib\wxp\i386
    C:\Programme\Microsoft DirectX SDK (August 2009)\Lib
    C:\Programme\Microsoft SDKs\Windows\v6.1\Lib

    Ich verstehe nicht, warum sich das Microsoft-Beispiel nicht fehlerfrei kompilieren läßt, bzw. warum keine Angaben über Einstellungen im Visual C++ angegeben sind und welche Dateien zugelinkt werden müssen. 🙄

    Hat jemand eine Idee.

    Vielen Dank im Voraus.

    Grüße

    datatom 🕶





  • Ich habe mir den Link angeschaut und jetzt unter Character Set auf "Use Multi-Byte Character Set" umgeschaltet. Erhalte allerdings nun 18 Fehler:

    1>------ Build started: Project: AmCap, Configuration: Debug Win32 ------
    1>Compiling...
    1>amcap.cpp
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(231) : error C2664: 'StringCchCatA' : cannot convert parameter 3 from 'WCHAR [260]' to 'STRSAFE_LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(327) : error C2664: 'GetProfileStringA' : cannot convert parameter 4 from 'WCHAR [260]' to 'LPSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(2691) : error C2664: 'statusUpdateStatus' : cannot convert parameter 2 from 'WCHAR [120]' to 'LPCTSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(2698) : error C2664: 'StringCchCopyNA' : cannot convert parameter 1 from 'WCHAR [1024]' to 'STRSAFE_LPSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(2699) : error C2664: 'StringCchCopyNA' : cannot convert parameter 1 from 'WCHAR [1024]' to 'STRSAFE_LPSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(2831) : error C2664: 'AppendMenuA' : cannot convert parameter 4 from 'BSTR' to 'LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(2887) : error C2664: 'AppendMenuA' : cannot convert parameter 4 from 'BSTR' to 'LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(3792) : error C2664: 'StringCchCopyA' : cannot convert parameter 3 from 'WCHAR [260]' to 'STRSAFE_LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(3838) : error C2664: 'OpenFileDialog' : cannot convert parameter 2 from 'WCHAR [260]' to 'LPTSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(3844) : error C2664: 'GetFileAttributesA' : cannot convert parameter 1 from 'WCHAR [260]' to 'LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(3904) : error C2664: 'ICaptureGraphBuilder2::CopyCaptureFile' : cannot convert parameter 2 from 'TCHAR [260]' to 'LPOLESTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(4108) : error C2664: 'GetSize' : cannot convert parameter 1 from 'WCHAR [260]' to 'LPCTSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(4112) : error C2664: 'GetFreeDiskSpaceInKB' : cannot convert parameter 1 from 'WCHAR [260]' to 'LPTSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(4165) : error C2664: '_wtol' : cannot convert parameter 1 from 'TCHAR [21]' to 'const wchar_t *'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(4240) : error C2664: '_wtof' : cannot convert parameter 1 from 'TCHAR [32]' to 'const wchar_t *'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(4392) : error C2664: 'WriteProfileStringA' : cannot convert parameter 3 from 'WCHAR [260]' to 'LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(4403) : error C2664: 'StringCchCopyNA' : cannot convert parameter 3 from 'WCHAR *' to 'STRSAFE_LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\dokumente und einstellungen\renate\eigene dateien\visual studio 2008\projects\amcap\amcap.cpp(4421) : error C2664: 'StringCchCopyA' : cannot convert parameter 3 from 'WCHAR *' to 'STRSAFE_LPCSTR'
    1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>Build log was saved at "file://c:\Dokumente und Einstellungen\Renate\Eigene Dateien\Visual Studio 2008\Projects\AMCap\Debug\BuildLog.htm"
    1>AmCap - 18 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========





  • Ich habe die BaseClasses zugewiesen:

    Include files:

    C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses

    Library Files:

    C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses

    Vorher habe ich die BaseClasses im debug und releas-Modus compiliert:

    1. Konvertiert als VC++ Projekt

    Debug-Modus:
    2. Von Unicode auf Use Multi-Byte Character Set geändert
    3. kompiliert
    Ergebnis: Der Debug-Ordner wurde erzeugt

    Release-Modus:
    4. Von Unicode auf Use Multi-Byte Character Set geändert
    5. kompiliert
    Ergebnis: Der Release-Ordner wurde erzeugt

    Beides nicht als executable file for debug modus abgespeichert.

    Leider treten die gleichen Fehler wieder auf.

    In den Beitrag den Exhumed nennt schreibt der user:

    hey ! i was finally able to build it after i explicitly attached the library files

    Wahrscheinlich mache ich beim zuweisen etwas falsch, aber was?



  • Also, ich hab's. Ich hab' auch probiert das Projekt zu erstellen mit VC 6.0 und DirectX-SDK 9.0. Bei mir klappte es auch nicht, weil er die Library "streambase.lib" nicht gefunden hat, dann habe diese manuell inkludiert. Er wollte aber immer die Lib im bestimmten Verzeichnis haben. Dann bin ich zu dem Verzeichnis "BaseClasses" und habe dort die Libraries erstellt...und siehe da, ich konnte dann AmCp erstellen. Du mußt nur die gleiche Konfiguration erstellen, d.h. z.b. Debug_Unicode.



  • Unglaublich, ich habe AmCap kompiliert bekommen. Vielen Dank Exhumed!!

    Ich musste doch auf unicode umstellen.

    Allerdings bekomme ich kein Bild. Die Kamera springt zwar an, aber das Bild fehlt. Ich mach für heute aber erst mal Schluß. Noch mal vielen Dank.

    Grüße

    datatom 😃 😃


Log in to reply