Суровая правда жизни о Direct3D
Спецвыпуск Хакер, номер #004, стр. 004-098-2
Когда ты закончишь качать, распакуй этот трофей куда-нибудь и скопируй с замещением все файлы из папок INCLUDE и LIB в соответствующие папки твоей VisualC++. Вот, а теперь займемся пытками.
Пытка №1 - А! Мы его подвесим под потолком, а снизу подложим шипы.
Для начала надо создать пустой Win32 проект. Если ты еще не работал в VisualC, то это делается очень хитрым образом. Загружай C++. Дави со всей силы на File->New. Если в появившемся окне еще не выбрана вкладка Projects, то сделай это сам. Тип проекта: Win32 Application. Имя, ну, например, XAKEP3D. В общем, выглядеть это должно примерно так:
Тыкай в ОК. В следующем окне выбирай An empty project и спроси себя - а почему бы и не нажать на Finish? Я тебе посоветую положительно ответить на этот нелегкий вопрос. Если будут еще окна, просто игнорируй их ОК'ом. Вот ты и создал пустой проект. Теперь надо создать файл, где и будет расположен твой исходник. Опять жми File->New. Но на этот раз выбирай вкладку Files. Тип файла - C++ Source File. Назови его как-нибудь, например, Main - главный. Теперь перейдем к набиванию самого текста проги.
Пытка №2 - трепанация черепа.
Зачем мы это делаем?!? А так до мозгов легче добраться. Помнишь, мы когда-то копировали файлы в INCLUDE и LIB. Настал их черед. Для начала подключим библиотеки. Жми Projects->Settings.
В появившемся окне жми на вкладку Link. В поле Object/library modules вводи такие странные слова, через пробел: dxguid.lib ddraw.lib d3dim.lib. Зачем ты это сделал, я сейчас поясню. dxguid.lib - библиотека гидов (от аббревиатуры GUID - Globally Unique IDentifier - Глобальный Уникальный ИДентификатор - ГУИД, но гид - проще :)) различных DirectX - классов. Ты помнишь в реестре такой раздел: HKEY_CLASSES_ROOT\CLSID\, а там такие странные слова, как {58DA8D96-9D6A-101B-AFC0-4210102A8DA7}? Нет? А они там! Это и есть пресловутые гиды. ddraw.lib - библиотека, использующая DirectDraw. d3dim.lib - библиотека Direct3D Immediate Mode. Вот. Теперь надо подключить заголовки. Если ты еще не раздавил ОК, то сейчас самое время это сделать. Теперь в файле Main.cpp (или как ты его там назвал) надо подключить заголовки.
Для начала нам нужен windows.h - виндовский заголовок. ddraw.h - заголовок DirectDraw. d3d.h - заголовок Direct3D. Сто-о-о-п! Чуть не забыл, в самом начале надо объявить D3D_OVERLOADS. Это значительно упростит нам жизнь - там объявлены перегруженные операторы и вспомогательные функции. Да, кстати, что такое перегруженные операторы, ты у меня не спрашивай - тебе лучше не знать (кошмары ночью сниться будут). Дальше нам надо подключить tchar.h - библиотека, работающая с типами LPSTR, TCHAR и т.д. И time.h - для работы со временем - пригодится потом. В общем, это должно выглядеть так: