[Gelöst]Wie bringt man das AMCAP sample aus der SDK zum laufen?
-
Sorry ich dachte die Datei wäre schon auf deinem Computer da sie in der SDK als Beispiel gegeben ist.
Hier ist ein Link: http://www.alice-dsl.net/mister-florian/vcpp2008/DirectShow.zip
[edite]
die paar Infos vom WWW fasse ich hier noch mal zusammengefasst:
Man muss bei der Baseclasses und bei Amcap im Projekt-Eigenschaftsfenster bei Konfigurationseigenschaften->allgemein->Projektstandarts den Seichensatz auf Unicode stellen (falls es nicht schon so ist)
Dann jeweils bei Konfigurationseigenschaften->C/C++->Sprache "wchar_t als integrierten Typ behandeln" auf "ja" stellen.Viel hat es aber jetzt bei mir nicht geholfen.
-
Na es gibt viele SDKs
Da Simon es kompilieren kann, kann er da bestimmt weiterhelfen. Im Moment fehlt die Zeit da zu suchen. Aber auf der schnellsuche bin ich darüber gestolpert:
http://directshownet.sourceforge.net/Vllt. löst Dir das ja ein paar Probleme , ka was Du genau vor hast.
Die Beispiele die Du gelinkt hast sind Win32 Projekte, die .Net Quellcode enthalten. (Die Baseklass soll als statische Lib erzeugt werden). Das schaut nach murks aus. Vllt. kann Simon kurz posten, was er da gezogen hat. Kurzum: Mal die Beispiele aktualisieren. Auf die schnelle weiß ich kein Rat (zumal ich mit DirectX und Show etc. nix am Hut hab.)
-
Habs jetzt gerade nochmals mit VS2005 ausprobiert.
Geht einwandfrei.Ich musste an den Projekt- Settings nicht ändern.
Einzig musste ich bei den VS Einstellungen den Inlude Pfad zum SDK Inklude an erste Stelle rücken.
Wie schon erwähnt, .NET wird keinenfalls benötigt.
(Weder bei BaseClasses, noch bei AMCap.) Es sind keine Ref. auf .NET Assemblies vorhanden und der Kompilerswitch steht sinngemäss auf keine .NET Unterstützung.DirectX muss nicht installiert sein, weder Runtime noch SDK.
Alles was ich gemacht habe ist den Ordner DirectShow aus der SDK Samples Sammlung zu kopieren und 1.) die BaseClasses Lib gebuildet (Achtung: Debug wählen, nicht Debug_MCS) und 2.) das AMCap Projekt gebuildet (strmbasd.lib wird statisch dazugelinkt, wie von Knuddelbär richtig bemerkt).
Simon
Edit:
Ich habe mir noch dein DirectShow.zip heruntergeladen und angeguckt.
Stimmt, dort wird .NET verwendet... habe aber aufgegeben, als nach Beheben der .NET Abhängigkeiten noch mehr (nicht .NET relevante) Kompiler Errors kamen.BTW: Assemblies Referenzieren kann man nur, wenn man den .NET Support (/clr o.ä.) bei den Projekt Settings aktiviert.
-
So wie es für mich aussieht ist schlicht und einfach deine streams.h falsch.
Auch steht ein deutscher Kommentar drinnnen, scheint mir verdächtig.Wie kommt also die falsche streams.h dort hinein?
- Ev. gibts ein deutsches SDK (weiss ich nicht, ich habs mit dem englischen probiert), bei dem die streams.h falsch ist.
- Sonst ein Fehler, verursacht durch den Anwender...Was würde ich tun?
- die streams.h austauschen gegen die korrekte version.
(Notfalls die orginal Version aus dem ISO File herauskopieren oder SDK neu installieren.)Simon
-
Hallo Knuddlbaer, Hallo Simon,
Danke für eure hilfe!
Ich in gerade dabei alle SDKs zu löschen und neu zu installieren.
DirectX muss nicht installiert sein, weder Runtime noch SDK.
Du hast SDK nicht installiert? aber Du machst doch ein Pfad zu SDK Include!?
BTW: Assemblies Referenzieren kann man nur, wenn man den .NET Support (/clr o.ä.) bei den Projekt Settings aktiviert.
Wo macht man das genau?
(strmbasd.lib wird statisch dazugelinkt, wie von Knuddelbär richtig bemerkt).
Und wie macht man das?
Welche SDK Version hast Du Simon? Könntest Du dein Directshow-Ordner online stellen?
-
Wo macht man das genau?
(.NET Support einstellen.)
Das macht man bei den Project Settings:
Configuration Properties > General > (dann rechts): Common Language Runtime support.
(Das ist gerade unter der Einstellung zum Character Set (Unicode oder nicht... das hast Du glaube ich auch schon mal gefunden...).Und wie macht man das?
(Lib statisch dazu linken.)
Bei den Project Settings:
Configuration Properties > Linker > Input > (rechte Seite) Additional Dependecies.Aber Achtung: Das sollte schon eingestellt sein!
Du hast SDK nicht installiert? aber Du machst doch ein Pfad zu SDK Include!?
Die Windows SDK (siehe weiter unten) muss natürlich installiert sein.
Jedoch nicht die DirectX SDK.Welche SDK Version hast Du Simon? Könntest Du dein Directshow-Ordner online stellen?
Ich habe Windows SDK Version 6.1. Das ist diejenige, die Du referenziert hast in einem vorherigen Post: http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
Zum online stellen: Es ist wirklich exakt die aus der SDK. Werde mir also vorerst mal noch nicht die Mühe machen.
Simon
-
Übrigens heisst SDK einfach nur Software Development Kit.
Das gibts für alles mögliche: Windows, DirectX, .NET, etc.Gruss Simon
-
Zum online stellen: Es ist wirklich exakt die aus der SDK.
Das ist seltsam mit den Sample aus dieser Version habe ich doch die ganze Zeit gearbeitet! Ich versteh das mit dem deutschen streams.h Header nicht. Ich habe jetzt die deutsche express Version von visual C++ 2008 gelöscht, alle SDKs gelöscht, die Standard Version von visual c++ 2008 wieder repariert. Jetzt installiere ich die Windows SDK neu. Mal sehen was passieren wird!
-
Danke für eure Hilfe!!!
Jetzt läuft es! Da ich schon die Windows SDK v6.1 (also die letzte Version) installiert hatte, denke ich es kann nur an der deutschen Visual C++ 2008 Express Edition liegen. Die hatte ich installiert als ich noch keine englische Standard Version hatte von Visual Studio 2008.
Echt Schade, 1 Woche für so etwas zu verlieren! Aber die Beharrlichkeit hat sich gelohnt!
Jetzt geht´s weiter!