О нас Продукты Поддержка ЧаВо Блог

Как скомпилировать образцы SDK VC++

image

 

   Автор: Ольга Кровякова - изменено 10 октября 2023 г., создано 1 апреля 2019 г.

Предисловие:
SolveigMM Video Editing SDK был разработан с использованием DirectX SDK 9.0 (ноябрь 2000 г.). Поскольку эта версия больше не доступна для загрузки с веб-сайта Microsoft, здесь описано, как использовать все еще доступные версии.

Microsoft предлагает использовать Latest Platform SDK (Windows SDK 6.1) и Latest DirectX SDK (март 2009 г.) , но, к сожалению, сделать это непросто, так как там пропущены некоторые подсказки, например экземпляр — dxtrans.h

Итак, на данный момент есть два способа использования Microsoft SDK:

1. Microsoft Windows SDK для Windows Server 2008® и .NET Framework 3.5 (v6.1  ) + Обновление DirectX 9.0 SDK — (февраль 2005 г.) 
2. Обновление DirectX 9.0 SDK — (февраль 2005 г.) + Дополнительное обновление DirectX 9.0 SDK — (февраль 2005 г.)


 

TRY Video Editing SDK FREE

 

image

Для Microsoft Visual Studio 2008 и более поздних версий необходимо установить дополнительные SDK следующим образом:

Microsoft Windows SDK для Windows Server 2008
® и .NET Framework 3.5 (v6.1 ) 1328,9 МБ
http://www.microsoft.com/downloads/details.aspx?FamilyID=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en

Обновление DirectX 9.0 SDK (февраль 2005 г.) Дополнительно 35,6 МБ
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en

Базовые классы DirectShow должны быть скомпилированы со следующим ключом:
C/C++, язык, рассматривать wchar_t как встроенный тип —  Нет (/Zc:wchar_t-)


После установки Windows SDK вам’потребуется скомпилировать базовые классы DirectShow, чтобы получить strmbase.lib и strmbasd.lib. По умолчанию базовые классы расположены здесь:

“Program FilesMicrosoft SDKWindowsv6.1SamplesMultimediaDirectShowBaseClasses”

Нельзя’путать Unicode и многобайтовые версии библиотек базовых классов&rsquo.

Обновите параметры вашей VisualStudio IDE:  добавьте следующие пути в список Включает :

1)“Program FilesMicrosoft SDKsWindowsv6.1SamplesMultimediaDirectShowBaseClasses” - вы должны поместить этот путь в самое начало “Включает” ] список;
2)“DXSDKInclude”;

Добавьте следующие пути в список Библиотеки :

1)“Program FilesMicrosoft SDKsWindowsv6.1Lib”;
2)“Program FilesMicrosoft SDKsWindowsv6.1SamplesMultimediaDirectShowBaseClassesDebug”;
3)“Program FilesMicrosoft SDKsWindowsv6.1SamplesMultimediaDirectShowBaseClassesRelease” - Библиотеки базовых классов, скомпилированные в Юникоде;
4)“Program FilesMicrosoft SDKsWindowsv6.1SamplesMultimediaDirectShowBaseClassesDebug_MBCS”;
5)“Program FilesMicrosoft SDKsWindowsv6.1SamplesMultimediaDirectShowBaseClassesRelease_MBCS” - Библиотеки базовых классов, скомпилированные в формате MultiByte;
6)“DXSDKLib”;

image

Для Microsoft Visual Studio 2005 необходимо установить дополнительные SDK следующим образом:

1. Обновление DirectX 9.0 SDK — (февраль 2005 г.) 154,6 МБ
http://www.microsoft.com/downloads/details.aspx?FamilyID=77960733-06E9-47BA-914A-844575031B81&displaylang=en

2. Обновление DirectX 9.0 SDK (февраль 2005 г.) Дополнительно 35,6 МБ
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=en

Вот расположение каталогов заголовков и библиотек:

image
image

Дополнительное обновление DirectX 9.0 SDK (2-й пункт) содержит базовые классы DirectShow, которые необходимо скомпилировать и которые зависят от некоторых заголовков в обновлении DirectX 9.0 SDK (1-й пункт)

Решение BaseClasses находится в этой папке:
"..ExtrasDirectShowSamplesC++DirectShowBaseClassesaseclasses.sln"

К сожалению, некоторые заголовки требуют небольших изменений; в противном случае VC Studio выдает ошибки компиляции.

..ExtrasDirectShowSamplesC++DirectShowBaseClassesctlutil.h

COARefTime(ДЛИННЫЙ);
оператор = (ДЛИННЫЙ); 

следует изменить на 

COARefTime(ДЛИННЫЙ);
// оператор = (ДЛИННЫЙ);
COARefTime& оператор = (ДЛИННЫЙ);

..ExtrasDirectShowSamplesC++DirectShowBaseClasseswxdebug.cpp

статический g_dwLastRefresh = 0;
следует изменить на
статический DWORD g_dwLastRefresh = 0;

"..ExtrasDirectShowSamplesC++DirectShowBaseClasseswinutil.cpp"
for ( UINT Count = 0;Count < Result;Count++) {

следует изменить на

Количество UINT = 0;
for ( Count = 0;Count < Результат;Count++) {

"..ExtrasDirectShowSamplesC++DirectShowBaseClassesoutputq.cpp"

для (iDone = 0;
iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);

следует изменить на

длинный iDone = 0;
для (iDone = 0;
iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);

Базовые классы DirectShow должны быть скомпилированы со следующим ключом:
C/C++, язык, рассматривать wchar_t как встроенный тип —  Нет (/Zc:wchar_t-)

 

TRY Video Editing SDK FREE

 

 

 Об авторе

imageОльга Кровякова - менеджер технической поддержки в комании Solveig Multimedia с 2010 года.

Она является автором многих текстовых и видео инструкций по программным продуктам компании: Video Splitter, HyperCam, WMP Trimmer Plugin, AVI Trimmer+ и TriMP4.

Посколько она работает с программами каждый день, то хорошо знает как они работают. Свяжитесь с Ольгой по почте support@solveigmm.com, если у вас возникнут вопросы и она с радостью вам поможет!