Acerca de Productos Asistencia Blog

Cómo compilar muestras de SDK VC++

image

 

  By Olga Krovyakova - modified October 10, 2023, created April 1, 2019.

Prefacio:
SolveigMM Video Editing SDK se ha desarrollado utilizando DirectX SDK 9.0 (noviembre de 2000). Tan pronto como esta versión ya no esté disponible para descargar desde el sitio web de Microsoft, aquí se describe cómo utilizar las versiones que aún están disponibles.

Microsoft sugiere utilizar el SDK de plataforma más reciente (SDK de Windows 6.1) y el SDK de DirectX más reciente (marzo de 2009) , pero desafortunadamente no se puede hacer fácilmente ya que se omiten algunos encabezados de pistas, por ejemplo. instancia - dxtrans.h

Entonces hasta el momento aquí hay dos formas de usar Microsoft SDK:

1. SDK de Microsoft Windows para Windows Server 2008® y .NET Framework 3.5 (v6.1  ) + Actualización del SDK de DirectX 9.0 - (febrero de 2005) 
2. Actualización del SDK de DirectX 9.0 - (febrero de 2005) + Actualización adicional del SDK de DirectX 9.0 (febrero de 2005)


 

PRUEBA GRATIS el SDK de edición de vídeo

 

image

Para Microsoft Visual Studio 2008 y superior debe instalar los SDK adicionales de la siguiente manera:

SDK de Microsoft Windows para Windows Server 2008
® y .NET Framework 3.5 (v6.1 ) 1328,9 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en

Actualización del SDK de DirectX 9.0 (febrero de 2005) Extras 35,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en

Las clases base de DirectShow deben compilarse con la siguiente clave:
C/C++, Idioma, Tratar wchar_t como tipo integrado -  No (/Zc:wchar_t-)


Después de instalar el SDK de Windows,’deberá compilar las clases base de DirectShow para obtener strmbase.lib y strmbasd.lib. De forma predeterminada, las clases base se encuentran aquí:

“\Archivos de programa\Microsoft SDK\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses”

No debe’confundir las versiones Unicode y Multibyte de las bibliotecas de clases base&rsquo.

Actualice las opciones de su IDE de VisualStudio:  agregue las siguientes rutas a la lista Incluye :

1)“\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\” - debe colocar esta ruta al principio de “Incluye” lista;
2)“\DXSDK\Incluir”;

Agregue las siguientes rutas a la lista Bibliotecas :

1)“Archivos de programa\Microsoft SDK\Windows\v6.1\Lib”;
2)“Archivos de programa\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug”;
3)“Archivos de programa\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release” - Bibliotecas de clases base compiladas por Unicode;
4)“Archivos de programa\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug_MBCS”;
5)“Archivos de programa\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release_MBCS” - Bibliotecas de clases base compiladas con multibytes;
6)“\DXSDK\Lib”;

image

Para Microsoft Visual Studio 2005 debe instalar los SDK adicionales de la siguiente manera:

1. Actualización del SDK de DirectX 9.0: (febrero de 2005) 154,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=77960733-06E9-47BA-914A-844575031B81&displaylang=en

2. Actualización del SDK de DirectX 9.0 (febrero de 2005) Extras 35,6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en

Aquí está el diseño de los directorios de encabezados y bibliotecas:

image
image

Actualización adicional del SDK de DirectX 9.0 (segundo punto) contiene clases base de DirectShow que deben compilarse y depender de algunos encabezados en la actualización del SDK de DirectX 9.0 (primer punto)

La solución BaseClasses se encuentra en esta carpeta:
"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\baseclasses.sln"

Lamentablemente, algunos encabezados requieren ligeras modificaciones; de lo contrario, VC Studio genera errores de compilación.

..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\ctlutil.h

COARefTime(LARGO);
operador=(LARGO); 

debe cambiarse a 

COARefTime(LARGO);
// operador=(LARGO);
COARefTime& operador=(LARGO);

..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\wxdebug.cpp

estático g_dwLastRefresh = 0;
debe cambiarse a
dWORD estático g_dwLastRefresh = 0;

"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\winutil.cpp"
for (UINT Recuento = 0;Recuento < Resultado;Recuento++) {

debe cambiarse a

Recuento UINT = 0;
for ( Contar = 0; Contar < Resultado; Contar ++) {

"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\outputq.cpp"

para (ya hecho = 0;
iDone < nMuestras || (m_nBatched! = 0 && m_bSendAnyway);

debe cambiarse a

largo iHecho = 0;
para (ya hecho = 0;
iDone < nMuestras || (m_nBatched! = 0 && m_bSendAnyway);

Las clases base de DirectShow deben compilarse con la siguiente clave:
C/C++, Idioma, Tratar wchar_t como tipo incorporado -  No (/Zc:wchar_t-)

 

PRUEBA GRATIS el SDK de edición de vídeo

 

 

 About the author

imageOlga 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!