Чтение онлайн

на главную - закладки

Жанры

Графика для Windows средствами DirectDraw

Трухильо Стэн

Шрифт:
Runtime-файлы DirectX 

DirectX делится на две части: runtime-часть и SDK. Для разработки приложений необходимы обе половины, а для запуска программ DirectX достаточно лишь runtime-файлов.

Runtime-часть DirectX встроена в Windows NT версии 4.0 и выше. В Windows 95 этих файлов нет, но их можно легко найти и установить. К сожалению, в Windows NT версий ниже 4.0 программы, использующие DirectX, работать не будут.

Runtime-часть DirectX поставляется вместе со многими приложениями DirectX. Она также имеется на CD-ROM, прилагаемом к этой книге. Распространяемые runtime-файлы DirectX

предназначены только для Windows 95, не пытайтесь устанавливать их для Windows NT.

Существует несколько способов узнать, установлена ли runtime-часть DirectX в вашей Windows 95. Во-первых, можно попытаться запустить любую демонстрационную программу, прилагаемую к этой книге или к DirectX SDK. Если программы работают, значит, runtime-часть установлена. Во-вторых, можно открыть панель управления и выбрать значок Add/Remove Programs. Если в открывшемся списке присутствует строка DirectX Drivers, значит, runtime-часть установлена. (Последний способ относится только к Windows 95. Хотя в Windows NT имеется встроенная поддержка DirectX, строка DirectX Drivers в диалоговом окне Add/Remove Programs не выводится). 

СОВЕТ

Новая возможность DirectX 5

Начиная с DirectX 5, значок DirectX помещается на панель управления. Это мини-приложение обеспечивает более совершенные возможности для просмотра и изменения настроек DirectX, чем в предыдущих версиях. 

Необходимо также проверить версию имеющейся у вас runtime-части. Всего существуют четыре версии библиотеки: 1, 2, 3 и 5 (версии 4 не было). В каждой версии используется своя runtime-часть. Поскольку работа DirectX основана на спецификации COM с ее мощной поддержкой совместимости с предыдущими версиями, новые версии runtime-частей DirectX должны нормально работать со старыми приложениями DirectX. Чтобы узнать, какая версия библиотеки установлена на вашем компьютере, вызовите диалоговое окно Add/Remove Programs, выделите строку DirectX Drivers и нажмите кнопку Add/Remove — появляется список всех установленных компонентов. Компоненты с номерами версий, начинающимися с 4.02, принадлежат DirectX 1. Номера версий, начинающиеся с 4.03, относятся к DirectX 2, с 4.04 — DirectX 3, и 4.05 — DirectX 5. На прилагаемом к книге CD-ROM содержится runtime-часть от DirectX 5. 

DirectX SDK 

В DirectX SDK входят все файлы, необходимые для разработки приложений на основе DirectX. В SDK также входит ряд демонстрационных программ и справочных файлов, но эти ресурсы являются необязательными. Необходимо лишь наличие заголовочных (.h) и библиотечных (.lib) файлов.

Найти DirectX SDK несколько сложнее, чем runtime-часть библиотеки. Этот пакет не входит в поставку Windows NT или Windows 95; его нет и на CD-ROM, прилагаемом к книге. Существуют три способа раздобыть SDK:

• Купить Visual C++ 5.0 (в комплект которого входит DirectX 3 SDK).

• Посетить на Web-узле Microsoft страницу для перекачки DirectX.

• Подписаться на MSDN (Microsoft Development Network).

Если у вас есть Visual C++, то есть и SDK. Хотя это не самая последняя версия, ее вполне хватит для большинства материалов из этой книги.

SDK также можно получить на Web-узле Microsoft (адрес

есть в предисловии). Объем пересылки оказывается довольно большим (из-за программ-примеров), поэтому приготовьтесь посвятить этому занятию целую ночь, особенно при модемном соединении.

Третий способ вполне хорош, однако кое-кто считает нелогичным платить Microsoft за право разработки приложений, отчасти способствующих продвижению их операционных систем. SDK входит в MSDN уровня 2 и выше. 

Visual C++ 

После установки SDK необходимо сообщить Visual C++ о его местонахождении. По умолчанию SDK инсталлируется в каталог с именем dxsdk/sdk. Заголовочные файлы помещаются в каталог dxsdk/sdk/inc, а библиотечные — в каталог dxsdk/sdk/lib.

Существуют два способа уведомить Visual C++ о местонахождении SDK. Вы можете либо указывать полный файловый путь при использовании файлов, либо включить нужные каталоги в путь поиска Visual C++. Желательно использовать второй метод, для чего применяется диалоговое окно, вызываемое командой Tools | Options | Directories. На рис. 1.1 показано, как выглядит это диалоговое окно после добавления пути к каталогу с заголовочными файлами. 

Рис. 1.1. Диалоговое окно Visual C++ с перечнем каталогов 

Вам также придется включить в список каталог dxsdk/sdk/lib. Это делается практически так же, как и с каталогом dxsdk/sdk/inc.

На рисунке каталог DirectX был с помощью кнопок ­ и Ї помещен в начало списка, над стандартными каталогами Visual C++. Это имеет значение, если от версии DirectX SDK, входящей в Visual C++, вы перейдете к более свежей. В противном случае будет использоваться старая версия (Visual C++ просматривает каталоги из списка сверху вниз).

После выполнения всех описанных действий вы сможете компилировать программы DirectX. Тем не менее осталась еще одна потенциальная проблема. Чтобы в DirectX 2 SDK нормально проходила компоновка программ, вызывающих функцию QueryInterface для GUID интерфейсов DirectX, необходимо определить символическую константу INITGUID. Этот символ должен быть определен в одном и только одном исходном файле, и притом до самой первой директивы #include, как показано в следующем фрагменте:

#define INITGUID

#include <ddraw.h>

// ... остальные директивы include ...

В DirectX 3 и выше этот вариант тоже работает, однако появляется и более элегантное решение. Вместо того чтобы определять символ INITGUID, включите в проект файл dxguid.lib (в диалоговом окне, вызываемом командой Build | Settings). 

Windows NT и Windows 95 

Эта книга посвящена разработке приложений DirectDraw для Windows NT и Windows 95. Приступая к работе над демонстрационными программами, я заранее приготовился к раздражающим мелким отличиям и проявлениям несовместимости. Признаюсь, я был приятно удивлен.

Поделиться:
Популярные книги

Наследие Маозари 3

Панежин Евгений
3. Наследие Маозари
Фантастика:
рпг
аниме
5.00
рейтинг книги
Наследие Маозари 3

Совок 13

Агарев Вадим
13. Совок
Фантастика:
попаданцы
5.00
рейтинг книги
Совок 13

Госпожа Доктор

Каплунова Александра
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Госпожа Доктор

Королева Солнца. Предтечи. Повелитель зверей. Кн. 1-17

Нортон Андрэ
Королева Солнца
Фантастика:
фэнтези
6.25
рейтинг книги
Королева Солнца. Предтечи. Повелитель зверей. Кн. 1-17

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II

Хозяйка старой усадьбы

Скор Элен
Любовные романы:
любовно-фантастические романы
8.07
рейтинг книги
Хозяйка старой усадьбы

Вспомнить всё (сборник)

Дик Филип Киндред
Фантастика:
научная фантастика
6.00
рейтинг книги
Вспомнить всё (сборник)

Ученик

Первухин Андрей Евгеньевич
1. Ученик
Фантастика:
фэнтези
6.20
рейтинг книги
Ученик

Жена неверного ректора Полицейской академии

Удалова Юлия
Любовные романы:
любовно-фантастические романы
4.25
рейтинг книги
Жена неверного ректора Полицейской академии

Купец III ранга

Вяч Павел
3. Купец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Купец III ранга

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

На границе империй. Том 8. Часть 2

INDIGO
13. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8. Часть 2

Сколько стоит любовь

Завгородняя Анна Александровна
Любовные романы:
любовно-фантастические романы
6.22
рейтинг книги
Сколько стоит любовь

Идеальный мир для Лекаря 16

Сапфир Олег
16. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 16