[Gelöst]Wie bringt man das AMCAP sample aus der SDK zum laufen?



  • Hallo,

    ich wollte den Sample AMCAP aus der SDK Bibliothek kompilieren allerdings ist ein Fehler aufgetreten der sagt, dass streams.h nicht gefunden wird.
    Beim google haben ich gefunden, dass ich in der Umgebung einen Verweis auf dem Pfad "C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses" machen soll.

    ich habe also bei Extra->Option->Projekte und Projektmappen-> VC++-Verzeichnisse: unter Includedatein habe ich den Pfad "C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses" eingefügt.

    Doch Anscheinend reicht das nicht! Ich bekommen ein Menge anderer fehler:
    hier ein Teil:

    amcap.cpp
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(3) : error C2871: 'System': Es ist kein Namespace mit diesem Namen vorhanden
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(4) : error C2653: 'System': Keine Klasse oder Namespace
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(4) : error C2871: 'ComponentModel': Es ist kein Namespace mit diesem Namen vorhanden
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(5) : error C2653: 'System': Keine Klasse oder Namespace
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(5) : error C2871: 'Collections': Es ist kein Namespace mit diesem Namen vorhanden
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(6) : error C2653: 'System': Keine Klasse oder Namespace
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(6) : error C2871: 'Forms': Es ist kein Namespace mit diesem Namen vorhanden
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(7) : error C2653: 'System': Keine Klasse oder Namespace
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(7) : error C2871: 'Data': Es ist kein Namespace mit diesem Namen vorhanden
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(8) : error C2653: 'System': Keine Klasse oder Namespace
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(8) : error C2871: 'Drawing': Es ist kein Namespace mit diesem Namen vorhanden
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(22) : error C2059: Syntaxfehler: 'public'
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(22) : error C2059: Syntaxfehler: 'public'
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(22) : error C2653: 'System': Keine Klasse oder Namespace
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(23) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    c:\programme\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\streams.h(23) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
    ...
    

    Das ist doch zum deprimieren! 😞 Immer wieder Probleme. Ich habe mir extra das Buch Eintieg in Visual C++ 2008 besorgt... 😡 Und doch muss ich immer auf eure Hilfe hoffen.

    Was muss ich jetzt weiter machen um AMCAMP kompilieren zu können?



  • Ich habe mir extra das Buch Eintieg in Visual C++ 2008 besorgt

    Nun, ein Bücherregal voll Bücher hilft nichts, wenn man die Bücher nicht liest!

    'System': Es ist kein Namespace mit diesem Namen vorhanden

    Du musst ein Verweis auf die Assembly System machen (sofern es sich um ein
    C++/CLI Projekt handelt.)

    Ansonsten Doku zum SDK lesen, was da den Namespace System hat. (Schaut aber
    nach .Net aus, Collections etc.)



  • von mir aus ein verweis auf dem Assembly warum auch immer. Aber wie?
    Ich drücke im Projektmappen-explorer mit der rechten Maustaste auf den Projektnamen und wähle den Menüpunkt Eigenschaften aus. Dann wähle ich "Allgemeine Eigenschaften", aber dort gibt es kein "Framework und Verweise". Nach dem Buch sollte es aber so sein... ich habe anstatt: "Startprojekt", "projektabhängigkeiten" und "Quelldatein debuggen". Was muss ich also machen?

    Bin sehr dankbar für jede hilfe! Coz I´m stucked!

    [update]

    Ich habe nicht wie im Buch beschrieben gemacht, denn lesen kann ich (auch schlechte Bücher).
    Ich habe im Projektmappen-explorer mit der rechten Maustaste gedrückt auf den Projektnamen und "Verweise" gewählt. So bekomme ich das Eigenschaftseiten-Fenster wie im Buch. oder leider fast so wie im Buch. Denn bei "Framework und Verweis" sind keine Namen und die Zielframework ".NET Framework 3.5" ist gesperrt.

    Ich bitte um Erklärungen! Sarkasmus oder Ironie bitte erst wenn es funktioniert, denn mir ist wirklich zum Amok laufen 😡



  • denn mir ist wirklich zum Amok laufen

    Viel Spass.

    Zur Not kannst Du auch probieren folgendes in dein Code einfügen:

    #using <System.dll>



  • Hast du einfach nur die entsprechende Projektdatei aus dem Sample geöffnet oder selbst was zusammengebaut? Falls selbst erstellt hast du wahrscheinlich nen falschen Projekttypen genommen.



  • Ich habe einfach die Projekt Datei aus dem Ordner woanders kopiert um sie dann zu kompilieren. Ich wollte anhand diesem Beispiel lernen, daher habe ich nichts im Code geändert. Einfach nur die sln Datei geöffnet.

    Das #using <System.dll> gibt mir weniger Fehlermeldung aber immer noch über 100. Ausserdem ist es wirklich nur eine kurzfristige Notlösung. Aber Danke



  • Ausserdem ist es wirklich nur eine kurzfristige Notlösung.

    Wesshalb bist Du Dir da so sicher?
    Simnon



  • Ich geh davon aus das ein Beispielprogramm ohne Änderungen funzen sollte. Ich glaube eher es liegt an den Verweisen in den Eigenschaften von VC++ 2008, was aber bei mir nicht funktioniert (siehe oben).



  • Kann denn jemand probieren das Beispielprogramm AmCap aus "C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\Capture" mit visual c++ 2008 zu kompilieren. Ob es bei euch klappt und/oder was ihr macht damit es klappt.

    Das wäre sehr hilfreich! 👍



  • Bei mir gehts:
    Ich musste 2 Punkte (1 und 2) berücksichtigen:
    1. Das ganze Verzeichnis DirectShow kopieren, denn da bestehen noch Abhängigkeiten zu anderen Projekten.
    2. Zuerst das Projekt BaseClasses builden und zwar als Debug bzw. Release Build (nicht z.B. Debug_MBCS)
    3. Builden des AMCap Samples.

    Übrigens wird das .NET Framework nicht benötigt.
    Das bedeutet es ist eine 100% native Applikation.

    Beide Projekte wurden zuerst konvertiert zum VS2008 Format.

    Simon



  • Hallo Simon, danke für deine Antwort!

    ich habe versucht die BaseClasses zu kompilieren aber dann bekomme ich:
    folgendes:

    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(3) : error C2871: 'System': Es ist kein Namespace mit diesem Namen vorhanden
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(4) : error C2653: 'System': Keine Klasse oder Namespace
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(4) : error C2871: 'ComponentModel': Es ist kein Namespace mit diesem Namen vorhanden
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(5) : error C2653: 'System': Keine Klasse oder Namespace
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(5) : error C2871: 'Collections': Es ist kein Namespace mit diesem Namen vorhanden
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(6) : error C2653: 'System': Keine Klasse oder Namespace
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(6) : error C2871: 'Forms': Es ist kein Namespace mit diesem Namen vorhanden
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(7) : error C2653: 'System': Keine Klasse oder Namespace
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(7) : error C2871: 'Data': Es ist kein Namespace mit diesem Namen vorhanden
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(8) : error C2653: 'System': Keine Klasse oder Namespace
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(8) : error C2871: 'Drawing': Es ist kein Namespace mit diesem Namen vorhanden
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(22) : error C2059: Syntaxfehler: 'public'
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(22) : error C2059: Syntaxfehler: 'public'
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(22) : error C2653: 'System': Keine Klasse oder Namespace
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(23) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    c:\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h(23) : error C2447: '{': Funktionsheader fehlt - Parameterliste im alten Stil?
    [...]
    

    Was soll ich machen damit er den Namenspace findet?



  • Zeig mal bitte die ersten 20 Zeilen der :\dokumente und einstellungen\florian\desktop\directshow\baseclasses\streams.h



  • Hi,
    hier ist ein Ausdruck:

    #pragma once
    
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    
    namespace AmCap {
    
    	/// <summary>
    	/// Zusammenfassung für streams
    	///
    	/// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
    	///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
    	///          das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
    	///          Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
    	///          arbeiten, die diesem Formular zugewiesen sind.
    	/// </summary>
    	public ref class streams : public System::Windows::Forms::Form
    	{
    	public:
    		streams(void)
    


  • Flobsy schrieb:

    Hi,
    hier ist ein Ausdruck:
    [code]#pragma once

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

    Übrigens wird das .NET Framework nicht benötigt.
    Das bedeutet es ist eine 100% native Applikation.

    Verwendet ihr denn wirklich das gleiche Projekt ?! Für die using namespace Direktiven müssen die Verweise auf die Assemblies gemacht werden. Wenn es ein Native Projekt ist, dann haben die using Direktiven da nichts verloren. (Die Klasse fängt aber mit ref an, also .Net Code)

    Ich hab das Beispiel nicht und mag es auch nicht zum download suchen.

    Klicke mit der rechten Mausetaste auf Dein Projekt -> dann auf Eigenschaften.
    http://www.rothmichael.de/cpp/AMCAP/Bild1.png

    In dem darauf folgenden Dialog auf Allgemeine Eigenschaften -> Framework und Verweise
    http://www.rothmichael.de/cpp/AMCAP/Bild2.png

    Mittels Neuen Verweis hinzufügen kannst Du dann die nötigen Verweise erstellen.
    http://www.rothmichael.de/cpp/AMCAP/Bild3.png

    Das ausgrauen hängt vom Zielframework ab für das dieses Projekt erstellt ist. (Du hattest ja was geschrieben von ausgegraut.)

    Mach mal ggf. ein Screenshot von http://www.rothmichael.de/cpp/AMCAP/Bild3.png diesem Fenster so das man mal schauen kann was da bei Dir los ist.
    Ggf. das Framework mal neu installieren bzw. die Visual Studio Installation reparieren.

    Ahja, und schau mal bitte für welches Zielframework das ganze ist. (2.0 3.0 3.5 )



  • Danke für die Hife!

    Wenn ich genau nach deiner Methode mache: http://www.alice-dsl.net/mister-florian/vcpp2008/1.png dann bekomme ich: http://www.alice-dsl.net/mister-florian/vcpp2008/2.png.
    Gehe ich aber auf "verweise" oder klicke ich mit der Rechten Maustaste nicht auf die Projektmappe sondern auf das Projekt: http://www.alice-dsl.net/mister-florian/vcpp2008/n1.png dann bekomme ich das im "Prinzip" richtige Fenster: http://www.alice-dsl.net/mister-florian/vcpp2008/n2.png Nur dass nichts drin ist. Daher komme ich auch nicht zu diesem Fenster: http://www.rothmichael.de/cpp/AMCAP/Bild3.png

    Kann es sein das Visual c++ 2008 die Konvertierung falsch macht. Beim probieren ist mir aufgefallen, dass wenn ich ein neues Projekt als CLR->Windows Form-Anwendung öffnen, dann habe ich das Bild wie in http://www.rothmichael.de/cpp/AMCAP/Bild2.png.
    Wenn ich aber ein Projekt als win32->win32-Projekt öffne, dann bekomme ich das Fenster mit der ausgegrauten Net. Framework Fläche.
    Im nachhinein ist es auch logisch, da die Win32-Anwendungen nativ sind und keine Framework benötigen.

    Wäre da vielleicht die Möglichkeit ein existierendes Projekt in einer Windows Form-Anwendung zu konvertieren.

    Da ich dachte das Problem könne an Visual C++ 2008 Express liegen, habe ich Visual C++ 2008 installiert. Das hat aber nichts geändert.

    [edit] Wegen Vollständigkeit kopiere ich mal was VC++ 2008 schreibt vor der Konvertierung:

    Wenn die Projektmappe oder das Projekt der Quellcodeverwaltung unterliegt, wird sie bzw. es während der Konvertierung automatisch ausgecheckt. Stellen Sie sicher, dass das richtige Quellcodeverwaltungs-Plug-In aktiv ist und keine Dateien exklusiv von anderen Benutzern ausgecheckt sind.

    Der Aktualisierungs-Assistent aktualisiert Projekte für .NET Compact Framework 1.0 auf .NET Compact Framework 2.0.
    .NET Compact Framework 2.0-Anwendungen werden nicht geändert.
    SQL Server Mobile 3.0- und SQL Server Compact Edition 3.1-Verweise werden zu SQL Server Compact 3.5-Verweisen aktualisiert.
    Außerdem werden verwaltete Smartphone 2003-Projekte für Windows Mobile 5.0 aktualisiert.

    Konvertierungstyp: Direkt ohne Sicherung



  • Daher komme ich auch nicht zu diesem Fenster: http://www.rothmichael.de/cpp/AMCAP/Bild3.png

    Du hast genauso wie ich den Knopf Verweise hinzufügen. Schau mal, den hab ich hier sogar hervorgeoben:
    http://www.rothmichael.de/cpp/AMCAP/Bild2.png

    Geht der bei Dir nicht ?



  • Du hast genauso wie ich den Knopf Verweise hinzufügen. Schau mal, den hab ich hier sogar hervorgeoben:
    http://www.rothmichael.de/cpp/AMCAP/Bild2.png

    Geht der bei Dir nicht ?

    Leider kann ich es nicht hervorheben, es ist unauswählbar 😞 Daher denke ich Visual C++ konvertiert es als win32-Projekt. Wenn Du ein neues win32->Win32-Projekt öffnest, müsstest du die Framework auch nicht auswählen können oder?

    Ich habe also ein neues Projekt als Windows CLR->Windows Form-Anwendung geöffnet (einzige Möglichkeit das folgende Fenster zu bekommen:http://www.alice-dsl.net/mister-florian/vcpp2008/mitwinform.png). Anschließend habe ich alle Header und Quelldatein aus AmCap hinzugefügt, um so die Konvertierung von Visual c++ des - nach ihm veralteten - Projekt AmCap zu umgehen. Ich bekomme folgenden Bericht nach dem Kompilieren:

    ..\AMCap\status.cpp(9) : fatal error C1083: Datei (vorkompilierte Headerdatei) kann nicht geöffnet werden: "Debug\amcapkonvertierungsversuch.pch": No such file or directory
    SampleCGB.cpp
    ..\AMCap\SampleCGB.cpp(9) : fatal error C1083: Datei (vorkompilierte Headerdatei) kann nicht geöffnet werden: "Debug\amcapkonvertierungsversuch.pch": No such file or directory
    crossbar.cpp
    ..\AMCap\crossbar.cpp(628) : fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?
    AssemblyInfo.cpp
    .\AssemblyInfo.cpp(1) : fatal error C1083: Datei (vorkompilierte Headerdatei) kann nicht geöffnet werden: "Debug\amcapkonvertierungsversuch.pch": No such file or directory
    amcapkonvertierungsversuch.cpp
    .\amcapkonvertierungsversuch.cpp(3) : fatal error C1083: Datei (vorkompilierte Headerdatei) kann nicht geöffnet werden: "Debug\amcapkonvertierungsversuch.pch": No such file or directory
    amcap.cpp
    ..\AMCap\amcap.cpp(10) : fatal error C1083: Datei (vorkompilierte Headerdatei) kann nicht geöffnet werden: "Debug\amcapkonvertierungsversuch.pch": No such file or directory
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Florian\Desktop\test\DirectShow\Capture\amcapkonvertierungsversuch\Debug\BuildLog.htm" gespeichert.
    amcapkonvertierungsversuch - 6 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Vielleicht ist es einfache zu lösen?!



  • Kannst Du mal den Downloadlink posten wo Du das Projekt herhast ?



  • Das Projekt ist im Microsoft SDK Ordner: C:\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia

    http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx



  • Sei mir nicht böse, ich sitze hier am Sonntag in der Firma weil ein Projekt fertig werden muss. Ich hab jetzt kein Bock die MS Seite abzugrasen.
    Bitte ein Deeplink auf das was man Downloaden muss.


Anmelden zum Antworten