So kompilieren Sie SDK VC++-Beispiele
Von Olga Krovyakova - geändert am 10. Oktober 2023, erstellt am 1. April 2019.
Vorwort:
Das SolveigMM Video Editing SDK wurde unter Verwendung von DirectX SDK 9.0 (November 2000) entwickelt. Sobald diese Version nicht mehr zum Download auf der Microsoft-Website verfügbar ist, wird hier beschrieben, wie Sie die noch verfügbaren Versionen verwenden können.
Microsoft schlägt die Verwendung von Neuestes Plattform-SDK (Windows SDK 6.1) und Neuestes DirectX-SDK (März 2009) vor, aber leider ist dies nicht einfach, da dort einige Hinweisheader fehlen, z Instanz - dxtrans.h
Also gibt es bis jetzt zwei Möglichkeiten , Microsoft SDKs zu verwenden:
1. Microsoft Windows SDK für Windows Server 2008® und .NET Framework 3.5 (v6.1 ) + DirectX 9.0 SDK-Update – (Februar 2005)
2. DirectX 9.0 SDK-Update – (Februar 2005) + DirectX 9.0 SDK-Update Extra- (Februar 2005)
Für Microsoft Visual Studio 2008 und höher sollten Sie die zusätzlichen SDKs wie folgt installieren:
Microsoft Windows SDK für Windows Server 2008® und .NET Framework 3.5 (v6.1 ) 1328,9 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en
DirectX 9.0 SDK-Update (Februar 2005) Extras 35,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en
DirectShow-Basisklassen sollten mit dem folgenden Schlüssel kompiliert werden:
C/C++, Sprache, wchar_t als integrierten Typ behandeln – Nein (/Zc:wchar_t-)
Nach der Installation des Windows SDK müssen Sie’die DirectShow-Basisklassen kompilieren, um strmbase.lib und strmbasd.lib zu erhalten. Standardmäßig befinden sich Basisklassen hier:
“\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses”
Sie dürfen nicht’Unicode- und Multibyte-Versionen der Basisklassenbibliotheken’ verwechseln.
Aktualisieren Sie die Optionen Ihrer VisualStudio-IDE: fügen Sie die folgenden Pfade zur Liste Enthält hinzu:
1)“\Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\” – Sie sollten diesen Pfad ganz am Anfang von “platzieren. Enthält” Liste;
2)“\DXSDK\Include”;
Fügen Sie der Liste Bibliotheken die folgenden Pfade hinzu:
1)“Programme\Microsoft SDKs\Windows\v6.1\Lib”;
2)“Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug”;
3)“Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release” – Unicode-kompilierte Basisklassenbibliotheken;
4)“Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug_MBCS”;
5)“Programme\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release_MBCS” – MultiByte-kompilierte Basisklassenbibliotheken;
6)“\DXSDK\ Lib”;
Für Microsoft Visual Studio 2005 sollten Sie die zusätzlichen SDKs wie folgt installieren:
1. DirectX 9.0 SDK-Update – (Februar 2005) 154,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=77960733-06E9-47BA-914A-844575031B81&displaylang=en
2. DirectX 9.0 SDK-Update (Februar 2005) Extras 35,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en
Hier ist das Layout der Header- und Bibliotheksverzeichnisse:
DirectX 9.0 SDK Update Extra (2. Punkt) enthält DirectShow-Basisklassen, die kompiliert werden sollten und von einigen Headern im DirectX 9.0 SDK Update (1. Punkt) abhängen
Die BaseClasses-Lösung befindet sich in diesem Ordner:
"..\„..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\baseclasses.sln“"
Leider erfordern einige Header geringfügige Änderungen; andernfalls liefert VC Studio Kompilierungsfehler.
“..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\ctlutil.h”
COARefTime(LONG);
operator=(LONG);
sollte geändert werden
COARefTime(LONG);
// operator=(LONG);
COARefTime& Operator=(LONG);
“..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\wxdebug.cpp”
static g_dwLastRefresh = 0;
sollte geändert werden
statisches DWORD g_dwLastRefresh = 0;
"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\winutil.cpp"
for ( UINT Count = 0;Count < Result;Count++) {
sollte geändert werden
UINT-Anzahl = 0;
for ( Count = 0;Count < Ergebnis;Count++) {
"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\outputq.cpp"
für (iDone = 0;
iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);
sollte geändert werden
long iDone = 0;
für (iDone = 0;
iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);
DirectShow-Basisklassen sollten mit dem folgenden Schlüssel kompiliert werden:
C/C++, Sprache, wchar_t als integrierten Typ behandeln – Nein (/Zc:wchar_t-)
Olga Krovyakova ist seit 2010 Technical Support Manager bei Solveig Multimedia.
Sie ist Autorin zahlreicher Text- und Video-Richtlinien für Produkte: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ und TriMP4.
Sie arbeitet jeden Tag mit Programmen und weiß daher sehr gut, wie sie funktionieren. Wenden Sie sich bei Fragen an Olga über support@solveigmm.com.
Sie hilft Ihnen gerne weiter!