Como compilar amostras do SDK VC++
By Olga Krovyakova - modified October 10, 2023, created April 1, 2019.
Prefácio:
SolveigMM Video Editing SDK foi desenvolvido usando DirectX SDK 9.0 (novembro de 2000). Assim que esta versão não estiver mais disponível para download no site da Microsoft, aqui é descrito como utilizar as versões que ainda estão disponíveis.
A Microsoft sugere usar o SDK da plataforma mais recente (SDK do Windows 6.1) e SDK do DirectX mais recente (março de 2009) , mas infelizmente isso não pode ser feito facilmente, pois alguns cabeçalhos de dicas são perdidos lá, por instância -dxtrans.h
Então até o momento aqui estão duas maneiras de usar Microsoft SDKs:
1. SDK do Microsoft Windows para Windows Server 2008® e .NET Framework 3.5 (v6.1 ) + Atualização do SDK do DirectX 9.0 - (fevereiro de 2005)
2. Atualização do SDK do DirectX 9.0 - (fevereiro de 2005) + Atualização extra do SDK do DirectX 9.0- (fevereiro de 2005)
EXPERIMENTE o SDK de edição de vídeo GRATUITAMENTE
Para Microsoft Visual Studio 2008 e superior , você deve instalar os SDKs adicionais da seguinte maneira:
SDK do Microsoft Windows para Windows Server 2008® e .NET Framework 3.5 (v6.1 ) 1328,9 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en
Atualização do SDK do DirectX 9.0 (fevereiro de 2005) Extras 35,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en
As classes base do DirectShow devem ser compiladas com a seguinte chave:
C/C++, Linguagem, Tratar wchar_t como tipo integrado - Não (/Zc:wchar_t-)
Depois de instalar o SDK do Windows, você’precisará compilar as classes base DirectShow para obter strmbase.lib e strmbasd.lib. Por padrão, as classes base estão localizadas aqui:
“\Arquivos de Programas\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses”
Você não deve’confundir as versões Unicode e Multibyte das bibliotecas de classes base&rsquo.
Atualize as opções do seu IDE VisualStudio: adicione os seguintes caminhos à lista Inclui :
1)“\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\” - você deve colocar este caminho bem no início do “Inclui” lista;
2)“\DXSDK\Incluir”;
Adicione os seguintes caminhos à lista Bibliotecas :
1)“Arquivos de Programas\Microsoft SDKs\Windows\v6.1\Lib”;
2)“Arquivos de programas\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug”;
3)“Arquivos de programas\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release” - Bibliotecas de classes base compiladas em Unicode;
4)“Arquivos de Programas\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug_MBCS”;
5)“Arquivos de programas\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release_MBCS” - Bibliotecas de classes base compiladas com MultiByte;
6)“\DXSDK\Lib”;
Para Microsoft Visual Studio 2005 , você deve instalar os SDKs adicionais da seguinte maneira:
1. Atualização do SDK do DirectX 9.0 - (fevereiro de 2005) 154,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=77960733-06E9-47BA-914A-844575031B81&displaylang=en
2. Atualização do SDK do DirectX 9.0 (fevereiro de 2005) Extras 35,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en
Aqui está o layout dos diretórios de cabeçalhos e bibliotecas:
DirectX 9.0 SDK Update Extra (2º ponto) contém classes base DirectShow que devem ser compiladas e dependem de alguns cabeçalhos na atualização do DirectX 9.0 SDK (1º ponto)
A solução BaseClasses está localizada nesta pasta:
"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\baseclasses.sln"
Infelizmente, alguns cabeçalhos requerem pequenas modificações; caso contrário, o VC Studio apresentará erros de compilação.
“..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\ctlutil.h”
COARefTime(LONG);
operador=(LONG);
deveria ser alterado para
COARefTime(LONG);
// operador=(LONG);
Operador COARefTime& =(LONG);
“..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\wxdebug.cpp”
estático g_dwLastRefresh = 0;
deveria ser alterado para
dWORD estático g_dwLastRefresh = 0;
"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\winutil.cpp"
for (Contagem UINT = 0;Contagem < Resultado;Contagem++) {
deveria ser alterado para
Contagem UINT = 0;
for (Contagem = 0;Contagem < Resultado;Contagem++) {
"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\outputq.cpp"
for (iDone = 0;
iDone < nSamples || (m_nBatched! = 0 && m_bSendAnyway);
deveria ser alterado para
longo iDone = 0;
for (iDone = 0;
iDone < nAmostras || (m_nBatched! = 0 && m_bSendAnyway);
As classes base do DirectShow devem ser compiladas com a seguinte chave:
C/C++, Linguagem, Tratar wchar_t como tipo integrado - Não (/Zc:wchar_t-)
EXPERIMENTE o SDK de edição de vídeo GRATUITAMENTE
Olga Krovyakova is the Technical Support Manager in Solveig Multimedia since 2010.
She is the author of many text and video guidelines of company's products: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ and TriMP4.
She works with programs every day and therefore knows very well how they work. Сontact Olga via support@solveigmm.com if you have any questions. She will gladly assist you!