Форум » Выпущенные книги » Программирование стратегических игр с DirectX 9.0 » Ответить

Программирование стратегических игр с DirectX 9.0

netlib: Тодд Баррон Программирование стратегических игр с DirectX 9.0 Книга «Программирование стратегических игр с DirectX 9.0» охватывает все темы, которые следует знать, чтобы создать собственную стратегическую игру на С++ с использованием DirectX. Книга выделяет процесс разработки игры и исследует игровые механизмы, управление ресурсами, разработку интерфейса, добавление звукового оформления и многое другое. Более сложные темы включают поиск пути, визуализацию стистем частиц и реализацию сетевого многопользовательского режима. Прочитав эту книгу вы узнаете об утилитах для управления проектами, которые могут облегчить процесс разработки; изучите основные концепции использования блочной графики для реализации ландшафтов; сможете реализовать высококачественное звуковое сопровождение с помощью интерфейсов DirectMusic и DirectSound; создадите собственный редактор карт и узнаете как генерируются случайные карты; узнаете как использовать ключевые кадры и анимационные наборы для анимации трехмерных объектов; поймете как алгоритм А* находит лучший путь на вашей карте; создадите использующие системы частиц спецэффекты, такие как взрывы и дымовые следы. Исходный код рассматриваемых в книге примеров может быть загружен с сайтов www.wordware.com/files/games и www.lostlogic.com.

Ответов - 55, стр: 1 2 3 All

netlib: Книга в формате CHM Файлы к книге Как обычно не осилил алфавитный указатель в конце книги.

CasDevelep: Книга классная. Перевод лучше оригинала.

buhak: скачал примеры из книги выдает ошибки --------------------Configuration: 123 - Win32 Debug-------------------- Compiling... Main.cpp c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(31) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(31) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(31) : error C2501: 'pDisplayModeList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(32) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(32) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(32) : error C2501: 'pDeviceInfoList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(47) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(47) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(47) : error C2501: 'pDeviceComboList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(76) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(76) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(76) : error C2501: 'pDepthStencilFormatList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(77) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(77) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(77) : error C2501: 'pMultiSampleTypeList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(78) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(78) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(78) : error C2501: 'pMultiSampleQualityList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(80) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(80) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(80) : error C2501: 'pDSMSConflictList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(81) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(81) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(81) : error C2501: 'pVertexProcessingTypeList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(82) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(82) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(82) : error C2501: 'pPresentIntervalList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(102) : error C2061: syntax error : identifier 'CArrayList' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(103) : error C2061: syntax error : identifier 'CArrayList' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(111) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(111) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(111) : error C2501: 'm_pAdapterInfoList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(126) : error C2143: syntax error : missing ';' before '*' c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(126) : error C2501: 'CArrayList' : missing storage-class or type specifiers c:\program files\microsoft visual studio\myprojects\123\d3denumeration.h(126) : error C2501: 'm_pAllowedAdapterFormatList' : missing storage-class or type specifiers Error executing cl.exe. 123.exe - 35 error(s), 0 warning(s) подскажите как исправить


Inferno: Судя по всему это синтаксические ошибки, что бы их исправить мне нужен код, а лучше проект целиком. Ты можешь выложить проект, что бы я мог скачать и посмотреть. Кстати каким компилятором ты пользуешься?

netlib: buhak пишет: скачал примеры из книги выдает ошибки Пожалуйста сообщите, какой именно из примеров вы компилируете, а также установленную у вас версию Visual Studio и DirectX SDK.

buhak: я компилирую пример D3DFrame_Isometric2DTiles, у меня стоит visual c++ 6.0 professional, и directx 9.0 SDK 2007(april) скачаный с http://msdn2.microsoft.com/ru-ru/xna/aa937788.aspx , еще я выложил проект http://slil.ru/24582892 , там я не стал ничего менять запаковал как было в примере и добавил файлы которые он требует и 123 http://slil.ru/24582735

netlib: У вас в проекте отсутствуют файлы DXUtil.h и DXUtil.cpp. Скопируйте их в папку проекта (насколько я помню они должны быть где-то в примерах). Если будут возникать такие же ошибки проверяйте список #include в файле main. (и добавляйте в проект отсутствующие файлы)

buhak: Спс за ответ я копировал из папки DXFILES файлы DXUtil.h и DXUtil.cpp, и при компиляции мне выдали почти 200 ошибок, тогда я скопировал все файлы которые были вместе d3denumeration.h, d3dapp.h и др. (там были и файлы DXUtil.h, DXUtil.cpp, но другого размера), ошибок стало меньше: --------------------Configuration: D3DFrame_Isometric2DTiles - Win32 Debug-------------------- Compiling... d3dapp.cpp c:\documents and settings\dxsdk\samples\c++\common\src\d3dapp.cpp(841) : error C2065: 'ULongToHandle' : undeclared identifier d3denumeration.cpp d3dfont.cpp d3dsettings.cpp c:\documents and settings\dxsdk\samples\c++\common\src\d3dsettings.cpp(274) : error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int ,unsigned int,long)' None of the functions with this name in scope match the target type c:\documents and settings\dxsdk\samples\c++\common\src\d3dsettings.cpp(496) : error C2065: 'ULongToPtr' : undeclared identifier c:\documents and settings\dxsdk\samples\c++\common\src\d3dsettings.cpp(667) : error C2065: 'UlongToPtr' : undeclared identifier d3dutil.cpp dxutil.cpp Main.cpp Error executing cl.exe. D3DFrame_Isometric2DTiles.exe - 4 error(s), 0 warning(s) В папке debug если файл скомпилирован правильно то копилятор ошибки не выдает, а копилирует остальные файлы сделайте плз из файлов *h и *.cpp -> *.obj http://ifolder.ru/2553553 (особенно d3dfile.h d3dfile.cpp )

stayer: Я пытался компилить в .NET с DirectX 2007,не канает,компилятор не мог найти утилитные файлы.Поставил директ 2003 (тоже 9),часть пошла,часть отказывается.Вообщем надо поконкретнее эту тему раскрыть.Кстати netlib у форума есть возможность писать код в тегах,ну что б он форматированный был?

buhak: stayer дай плз ссылку на директ 2003

netlib: stayer пишет: Я пытался компилить в .NET с DirectX 2007,не канает,компилятор не мог найти утилитные файлы.Поставил директ 2003 (тоже 9),часть пошла,часть отказывается. вечером посмотрю и отпишусь по результатам. Я тоже думаю, что проблема в различных версиях. Примеры из книги у меня не компилировались, пока я не заменил файлы на те, которые были в установленном у меня DirectX SDK. Вполне возможно, что для DirectX 2007 ситуация несколько изменилась из-за появления DitrecX 10 (я компилил с теми DX, где 10 версии еще не было). с ходу могу предположить, что либо не хватает каких-то новых #include, либо надо переопределить какие-то #define.

netlib: Кстати вдогонку еще одно замечание. Я не копировал файлы в папку проекта, а менял ссылки на них, чтобы они оставались в папке dxsdk/samples/c++/common. Кроме того в свойствах проекта я включал эту папку в пути поиска нужных файлов.

stayer: buhak у меня на диске от книги Ламота был 2003.Так не знаю где взять... netlib там дело в другом,поменялись названия инклудов,и когда начинаешь по цепочке идти уже не птонятно что откуда вызывается,так же поменялись сигнатуры функций,,короче бардак...там полностью код переписывать надо...

netlib: Скачал последнюю версию DirectX SDK (июнь 2007). Будем посмотреть. Пока могу только сказать, что фреймворк приложения там заменили. Вместо Samples/Common теперь DXUT (кстати, его отсутствие мешало мне компилить примеры из ShaderX 3).

netlib: stayer пишет: Кстати netlib у форума есть возможность писать код в тегах,ну что б он форматированный был? Тег pre (в квадратных скобках) - моноширинный шрифт с сохранением пробелов и переводов строки. Я им всегда пользуюсь для кода.

stayer: netlib думается мне может начать переписывать код под DX2007? и потихоньку сюда выкладывать? Может кто еще подтянется,поможет...

netlib: stayer пишет: переписывать код под DX2007? Я пока не уверен, что это надо. В ближайшие дни посмотрю как все компилится с последней версией DX - тогда станет ясно, переписывать все или просто написать несколько советов для достижения совместимости. А ведь кроме "Стратегических игр" есть еще и "Ролевые игры" и книга Фрэнка Луны по DirectX.

stayer: netlib там те же проблемы.Я ж говорю поменялись сигнатуры функций,простым прописыванием новых библиотек наживаешь себе кучу неприятностей.

netlib: Как я компилировал пример D3DFrame_Isometric2DTiles из книги, используя последнюю версию DX SDK 2007: 1. Скопировал проект, как он есть в файлах книги и попробовал скомпилировать. Получил кучу сообщений об ошибках из-за невозможности открыть включаемые файлы. Поменял пути к включаемым файлам (щелкаешь правой кнопкой по файлу .h в списке файлов проекта, выбираешь Properties и меняешь путь во второй строке на правильный. 2. Добавил пути поиска включаемых файлов и библиотек. Tools - Options - Directories. Для Include Files добавил путь C:\DXSDK\Include. Для Library Files добавил C:\DXSDK\LIB\X86. Обратите внимание, что раньше все библиотеки лежали в LIB, а теперь в зависимости от платформы разделены по двум каталогам - X86 для 32-разрядной и X64 для 64-разрядной. 3. Поскольку в новой версии DX SDK нет фреймворка приложения, который используется в книге, я скопировал его из более ранней версии SDK (это папка DXSDK\Samples\C++\Common). Если у вас нет этой папки, скачайте ее по ссылке http:://netlib.narod.ru/common.zip. Потом я добавил путь к заголовочным файлам в проект Project - Settings - C/C++, выбираем в поле Category Preprocessor, и в поле Additional include directories вводим C:\DXSDK\Samples\C++\Common\Include. 4. Кажется все настроено, попробуем скомпилировать. Опа - мы получили те же сообщения об ошибках, которые здесь уже обсуждались. Compiling... d3dapp.cpp c:\documents and settings\dxsdk\samples\c++\common\src\d3dapp.cpp(841) : error C2065: 'ULongToHandle' : undeclared identifier d3denumeration.cpp d3dfont.cpp d3dsettings.cpp c:\documents and settings\dxsdk\samples\c++\common\src\d3dsettings.cpp(274) : error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int ,unsigned int,long)' None of the functions with this name in scope match the target type c:\documents and settings\dxsdk\samples\c++\common\src\d3dsettings.cpp(496) : error C2065: 'ULongToPtr' : undeclared identifier c:\documents and settings\dxsdk\samples\c++\common\src\d3dsettings.cpp(667) : error C2065: 'UlongToPtr' : undeclared identifier d3dutil.cpp dxutil.cpp Main.cpp Error executing cl.exe. Эти ошибки возникают из-за того, что в новой версии SDK нет файла basetsd.h. Я скопировал его в папку Common и в файл main.h добавил#include "basetsd.h". Если вы скопировали фреймворк по приведенной выше ссылке, там уже есть basetsd.h. 5. Компилим снова. Все проходит успешно, но при компоновке не находится библиотека d3dx9dt.lib. Копируем его из старого SDK в новый (папка DXSDK\LIB\X86). Компилируем снова - ВСЕ ЗАРАБОТАЛО.

Inferno: 2. Добавил пути поиска включаемых файлов и библиотек. Tools - Options - Directories. Для Include Files добавил путь C:\DXSDK\Include. Для Library Files добавил C:\DXSDK\LIB\X86. Обратите внимание, что раньше все библиотеки лежали в LIB, а теперь в зависимости от платформы разделены по двум каталогам - X86 для 32-разрядной и X64 для 64-разрядной. А зачем так сложно? Можна было просто скопировать заголовочные файлы в C:\Microsoft Visual Studio 8\VC\PlatformSDK\Include и lib файлы в C:\Microsoft Visual Studio 8\VC\PlatformSDK\Lib. И главное не нужно добавлять пути.

netlib: Inferno пишет: А зачем так сложно? Это чтобы файлы DXSDK лежали в отдельной папке, а не в общей куче. Кстати, компилировал я в 6 версии Visual Studio.

Inferno: Это чтобы файлы DXSDK лежали в отдельной папке, а не в общей куче. А какая разница? Если они лежат в отдельной папке, они что лучше работают? Кстати, компилировал я в 6 версии Visual Studio. Не проблема. Вот вам для шестой версии студии: Можна было просто скопировать заголовочные файлы в C:\Program Files\Microsoft Visual Studio\VC98\Include и lib файлы в C:\Program Files\Microsoft Visual Studio\VC98\Lib. И главное не нужно добавлять пути.

netlib: Inferno пишет: А какая разница? Если они лежат в отдельной папке, они что лучше работают? Работают точно также. Просто мне так удобнее (чтобы не мешать работу с развлечением). Per rectum ad astra

Inferno: Работают точно также. А я и не спорю. Просто мне так удобнее (чтобы не мешать работу с развлечением). Спасибо за ответ.

Inferno: Per rectum ad astra через задний проход

CasDevelep: через задний проход

buhak: у меня с http://netlib.narod.ru/common.zip не качает залейте плз на http://ifolder.ru или на buhak@rambler.ru

netlib: Отправил почтой

buhak: Спасибо за советы и за файл пример запустил

Владимир: Выложите, плз, еще раз нужные файлы ("http://netlib.narod.ru/common.zip" - неработает)

Владимир: Что, ни у кого нет? Выложите здесь, или скинте на мыло: finder_sl@list.ru Очень надо! И еще кроме common d3dx9dt.lib скинте. Заранее спасибо.

-Serge-: Выложите, плз, еще раз нужные файлы ("http://netlib.narod.ru/common.zip" - неработает) Точно не работает ссылка. Перезалейте куда-нибудь, пожалуйста. Или хоть на мыло скиньте: seriks@tut.by

netlib: http://rapidshare.com/files/117434711/Common.zip

Димон: а не подскажите, что нужно, чтобы в Visual Studio 2005 откомпилировался этот пример, а то выдается ошибка: LINK : fatal error LNK1104: cannot open file 'd3dx9dt.lib'

stayer: Нужно поставить DirectX SDK и прописать перед WinMain #pragma comment (lib,"d3dx.lib")

Bes: у меня VS 2008 я уже і так і сяк а 1 оно дайот одну ошибку ходь ти пні c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1582) : error C2051: case expression not constant Main.cpp не подскажите шо я зделал не так

8daemon: Внимательнее читай сообщение об ошибки и тогда ты поймёшь в чём дело. Это важно, найти тебе самому в чём проблема. Лучше в голове осядет.

Bes: 8daemon пишет: Внимательнее читай сообщение об ошибки и тогда ты поймёшь в чём дело. Это важно, найти тебе самому в чём проблема. Лучше в голове осядет. я уже неделю крутю етот премер і так і сяк а он некак

8daemon: Конкретнее опиши: что компилишь, какой пример?

Bes: я взялса за кнігу і питаюся скомпіліревать премери которие в кніге, я загрузіл файли ліб і срр с нета которих не хвотало ошибок стало меньше но 1 всеравно осталося она почті во всех премерах с кнігі ------ Build started: Project: D3DFrame_Isometric2DTiles, Configuration: Debug Win32 ------ Compiling... d3dapp.cpp c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(816) : warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(144) : see declaration of 'strncat' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1400) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1408) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1442) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1530) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1535) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1543) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1548) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1554) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1561) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1569) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1578) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1582) : error C2051: case expression not constant d3denumeration.cpp d3dfont.cpp c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dfont.cpp(53) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' d3dsettings.cpp c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dsettings.cpp(495) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dsettings.cpp(507) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dsettings.cpp(581) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dsettings.cpp(667) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' d3dutil.cpp dxutil.cpp c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(60) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(79) : see declaration of 'strcat' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(112) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(136) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(160) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(580) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(630) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(712) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(730) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(745) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(760) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(769) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(781) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(74) : see declaration of 'strcpy' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(842) : warning C4996: '_vsnprintf': This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_vsnprintf' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(868) : warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(324) : see declaration of 'sscanf' c:\c++\стратегії\dxsdk\samples\c++\common\src\dxutil.cpp(905) : warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) : see declaration of '_snprintf' Main.cpp c:\c++\стратегії\обученіе\rtssource +к кніге о іграх\d3dframe_isometric2dtiles\main.cpp(258) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : see declaration of 'sprintf' Generating Code... Build log was saved at "file://c:\C++\стратегії\обученіе\RTSSource +к кніге о іграх\D3DFrame_Isometric2DTiles\Debug\BuildLog.htm" D3DFrame_Isometric2DTiles - 1 error(s), 33 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

netlib: У вас в файле d3dapp.cpp в строке 1582 должен быть фрагмент [pre] case HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND ): _tcscpy( strMsg, _T("Could not load required media." ) ); break; [/pre] Просто закомментируйте строку с case. И все. // case HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND ): На работоспособности программ это никак не скажется.

8daemon: c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dfont.cpp(53) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\program files\microsoft visual studio 9.0\vc\include\string.h(157) : see declaration of 'strncpy' d3dsettings.cpp Это сообщение говорит, что лучше будет вызвать более безопасную ф-ию strncpy_s, нежели strncpy. Для того, чтобы скрыть это предупреждение используйте _CRT_SECURE_NO_WARNINGS. Смотрите онлайн помощь для более детального описания проблемы. Далее пишется: посмотрите на определение ф-ии strncpy в файле d3dsettings.cpp. Скажу от себя, что невелика беда использовать небезопасную ф-ию. Т.о. если ты используешь _CRT_SECURE_NO_WARNINGS, то дальше предупреждений на данную тему выходить не должно. И 33 warning(s) превратится в 0 warning(s). Насчёт ошибки, c:\c++\стратегії\dxsdk\samples\c++\common\src\d3dapp.cpp(1582) : error C2051: case expression not constant. Перевожу величина при case не константа. Пример смотри тут http://msdn.microsoft.com/en-us/library/ez8ttz2y.aspx?ppud=4 . Короче тебе придётся найти в коде d3dapp.cpp ветвление switch-case и подправить данный казус. За не имением всех файлов необходимых для компиляции данного примера, во очию у меня увидеть этого не получилось. Если выложишь все недостающие файлы, могу попробывать. И совет на будущее пойск в МСДН не помешает.

Bes: спосіба большое за ответ! я розобралса все работает).

BlooDVlaD: А можете еще раз, пожалуйста, выложить те файли со старого SDK или отослать мне на мыло blood_vlad89@mail.ru

Андрей: А можете еще раз, пожалуйста, выложить common.zip на любой ресурс кроме ifolder.

Unduing: Уже нашел старый Directx буду мучить его.

sbury: http://rapidshare.com/files/117434711/Common.zip А может кто то еще раз выложить. А то не работает. Или сылочку скиньте если кто знает Спасибо.

--Rand--: Использую Microsoft Visual C++ 2008 Express Edition Microsoft DirectX SDK (March 2008) Изначально файла "Common" в СДК не было я скачал, там есть все указанные ниже файлы, которые якобы он не может найти. В данный момент полный путь до например "dxutil.cpp" на моем компе следующий: C:\Program Files\Microsoft DirectX SDK (March 2008)\Samples\C++\Common\Src\dxutil.cpp а внизу путь явно не верный, помогите мне его правильно сменить :(( я в Microsoft Visual Studio 9.0 не могу нормально прописывать пути :( Очень надеюсь на Вашу помощь. ------ Построение начато: проект: D3DFrame_2DTiles, Конфигурация: Debug Win32 ------ Компиляция... d3dapp.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dapp.cpp: No such file or directory d3denumeration.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3denumeration.cpp: No such file or directory d3dfont.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dfont.cpp: No such file or directory d3dsettings.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dsettings.cpp: No such file or directory d3dutil.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dutil.cpp: No such file or directory dxutil.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\dxutil.cpp: No such file or directory Main.cpp c:\documents and settings\admin\desktop\book\barron_strategygameprogdx9.0\rtssource\d3dframe_2dtiles\main.h(25) : fatal error C1083: Не удается открыть файл include: D3DEnumeration.h: No such file or directory Создание кода... Журнал построения был сохранен в "file://c:\Documents and Settings\Admin\Desktop\book\Barron_StrategyGameProgDX9.0\RTSSource\D3DFrame_2DTiles\Debug\BuildLog.htm" D3DFrame_2DTiles - ошибок 7, предупреждений 0 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

netlib: --Rand-- пишет: Использую Microsoft Visual C++ 2008 Express Edition Microsoft DirectX SDK (March 2008) Изначально файла "Common" в СДК не было я скачал, там есть все указанные ниже файлы, которые якобы он не может найти. В данный момент полный путь до например "dxutil.cpp" на моем компе следующий: C:\Program Files\Microsoft DirectX SDK (March 2008)\Samples\C++\Common\Src\dxutil.cpp а внизу путь явно не верный, помогите мне его правильно сменить :(( я в Microsoft Visual Studio 9.0 не могу нормально прописывать пути :( Очень надеюсь на Вашу помощь. ------ Построение начато: проект: D3DFrame_2DTiles, Конфигурация: Debug Win32 ------ Компиляция... d3dapp.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dapp.cpp: No such file or directory d3denumeration.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3denumeration.cpp: No such file or directory d3dfont.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dfont.cpp: No such file or directory d3dsettings.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dsettings.cpp: No such file or directory d3dutil.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\d3dutil.cpp: No such file or directory dxutil.cpp c1xx : fatal error C1083: Не удается открыть файл источник: ..\..\..\DXSDK\Samples\C++\Common\Src\dxutil.cpp: No such file or directory Main.cpp c:\documents and settings\admin\desktop\book\barron_strategygameprogdx9.0\rtssource\d3dframe_2dtiles\main.h(25) : fatal error C1083: Не удается открыть файл include: D3DEnumeration.h: No such file or directory Создание кода... Журнал построения был сохранен в "file://c:\Documents and Settings\Admin\Desktop\book\Barron_StrategyGameProgDX9.0\RTSSource\D3DFrame_2DTiles\Debug\BuildLog.htm" D3DFrame_2DTiles - ошибок 7, предупреждений 0 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== Для начала вам надо заменить ..\..\..\DXSDK на C:\Program Files\Microsoft DirectX SDK (March 2008) Как задавать пути написано в книге Френка Луны, которая есть на этом сайте.

inside: Классная книга, классный перевод! Спасибо!

StudentZp: Всем привет. Выложите пожалуйста common папку с d3dapp.cpp и остальными что нужны для примеров. Скачать старую версию SDK не могу. Спасибо.

StudentZp: Тут есть кто поможет?

Oilcat: --------------------Configuration: D3DFrame_2DTiles - Win32 Debug-------------------- Compiling... d3dapp.cpp c:\dxsdk\samples\c++\common\src\d3dapp.cpp(834) : error C2065: 'ULongToHandle' : undeclared identifier d3denumeration.cpp d3dfont.cpp d3dsettings.cpp c:\dxsdk\samples\c++\common\src\d3dsettings.cpp(276) : error C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' None of the functions with this name in scope match the target type c:\dxsdk\samples\c++\common\src\d3dsettings.cpp(498) : error C2065: 'ULongToPtr' : undeclared identifier c:\dxsdk\samples\c++\common\src\d3dsettings.cpp(671) : error C2065: 'UlongToPtr' : undeclared identifier d3dutil.cpp dxutil.cpp Main.cpp Error executing cl.exe. D3DFrame_2DTiles.exe - 4 error(s), 0 warning(s) А если ошибки по-прежнему остались? Компилю в 6-ой версии, direct X со всеми библиотеками и хеадерами есть(правда часть 1997 года, а часть 2004, здесь ссылки уже старые, пришлось по всему интернету собирать), basetsd.h так же есть и прописан в main.h. Ошибка так и осталась. Кстати, скачал с майкрософта СДК 2007 майский, так там часть файлов тоже осутствует(справочные и подключаемые файлы для C++)...

Oilcat: netlib пишет: Эти ошибки возникают из-за того, что в новой версии SDK нет файла basetsd.h. Я скопировал его в папку Common и в файл main.h добавил#include "basetsd.h". Если вы скопировали фреймворк по приведенной выше ссылке, там уже есть basetsd.h. 5. Компилим снова. Все проходит успешно, но при компоновке не находится библиотека d3dx9dt.lib. Копируем его из старого SDK в Оказалось мало их просто добавить, нужно подобрать подходящие версии этих файлов,так, например, basetsd.h подошел года 1999(в ранних версиях не было ничего про uLongToPtr),а библиотека d3dx9dt.lib подошла 2002. В общем я рад,что собрал все это наконец, РАБОТАЕТ !!!

krendy: у меня нет папки DXSDK\Samples\C++\Common нигде не нашёл, кто может дайте ссылку



полная версия страницы