Форумы:

Программирование DirectX / DirectShow
Предложения и bug report


Как подружить DirectX 8.1 / DirectShow и C++Builder 6

Для начала советую скачать DirectX 8.1 SDK (http://www.microsoft.com/directx/default.asp)

Скопируйте все файлы из каталога Include в соответствующий каталог C++Builder (перезаписывая имеющиеся). В файл d3dx8math.inl нужно добавить макросы:

#define sqrtf(x) (FLOAT)sqrt(x);
#define asinf(x) (FLOAT)asin(x);

На всякий случай советую во все новые *.h файлы добавить следующее (для C++Builder 5):

#pragma option push -b -a8 -pc -A- /*P_O_Push*/
<original code>
#pragma option pop /*P_O_Pop*/

Необходимые библиотеки можно создать с помощью утилиты implib.exe, например так:
>implib.exe dsound.lib dsound.dll
>implib.exe ddraw.lib ddraw.dll

Практически невозможно полноценно использовать DirectX 8 / DirectShow без библиотек strmiids.lib, dxguid.lib, amstrmid.lib, dmoguids.lib, в которых содержатся все GUIDs. К сожалению Microsoft не пожелал сделать версию для Borland (как это было в DirectX 7 SDK). Я написал программу, которая генерит исходники этой библиотеки.

Project properties:

В свойствах проекта нужно выбрать "MFC compatibility" на закладке "Advanced Compiler" и "Treat enum types as ints" на закладке "Compiler".

Вручную исправьте следующие строки в BPR файле:

<PROJECT>

<MACROS>

...
<USERDEFINES value="_MBCS;U__midl"/>
<SYSDEFINES value="_MSC_VER=1100;_NO_VCL;NO_STRICT"/>
...

<LINKER>

...
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>

Download:

Описание Link #1 Link #2 Размер Дата
Простенький MediaPlayer с поддержкой DirectShow DMO Audio Effect (вместе с исходниками) slyplayer.zip slyplayer.zip 319K 04/12/2003
Все возможные библиотеки DirectX 8.1 для C++Builder 6, включая GUID (strmiids.lib) bcb_dx_lib.zip bcb_dx_lib.zip 795K 12/10/2004
Все файлы DirectX 9 SDK из каталога Include, подправленные для C++Builder 6 bcb_dx_include.zip bcb_dx_include.zip 1.2M 12/10/2004
Полезные DirectX / DirectShow исходники из каталога Common (и полученная из них библиотека DXCommon.lib) bcb_dx_common.zip bcb_dx_common.zip 245K 12/10/2004
DirectShow Base Classes из DirectX 9 SDK (исходники и библиотека StrmBase.lib) bcb_dshow.zip bcb_dshow.zip 1.1M 12/10/2004
Исходники DirectShow фильтра (EZRGB24.AX) из DirectX 8 SDK, переделанного под C++Builder 6 (необходимы DirectShow Base Classes). bcb_ezrgb24.zip bcb_ezrgb24.zip 83K 12/10/2004

Microsoft® DirectX® 8.1 SDK включает утилиту GraphEdit для создания и отладки фильтров DirectShow.

Сначала нужно вставить фильр через меню "Graph | Insert Filter" из раздела "DirectShow Filters". Потом в меню "File | Render Media File" нужно выбрать любой видео/аудио файл. Вся структура фильтров очень удобно отображается и настраивается.

graphedt.zip graphedt.zip 151K 04/12/2003

Ссылки:

BCB-Tools.com - DirectX component libraries for BCB

См. также:

MediaCenter

Самый быстрый 10-полосный эквалайзер (DirectShow DMO Audio Effect filter)

SoundStream SDK


[Назад]