Пытаюсь скомпилить Microsoft Visual C++ 2008 Express Edition with SP1 - RUS примеры из книг по созданию игр на DirX9 и уже не первый раз выскакивает ошибка такого рода, как в этом конкретном примере
TemplateProj.obj : error LNK2005: _PVOID64 уже определен в dxfunc.obj
Это пример из книги "Искусство программирования игр на С++" (Михаил Фленов)[2006] (пример лежит тут:
http://forum.sources.ru/index.php?act=Attach&type=post&id=2466561
)
Другой пример я брал из книги Грега Снука - "Создание 3D-ландшафтов в реальном времени с использованием C++ и DirectX 9" и результат был такой же. В чем здесь проблема?
Помогите, пожалуйста! Сам не разберусь, поскольку ошибка то вроде бы не в самом коде, а где-то на уровне машинных кодов.
Большое Спасибо!
Вообще хорошо бы выложить проект сюда, а не отправлять людей на левый ресурс где надо регистрироваться (мне вот реально не хочется).
А телепатическим диагнозом у тебя где-то бардак с инклюдами
Да я бы не против выложить, да вот здесь первый день, не знаю, как это практически сделать.
Вот и в этом проекте (надыбал здесь: http://gungine.gamedev.ru/step3.zip ) та же трабла!!! Ребята, что же это такое? Может VC++8 просто эти проекты гасит? Объясните новичку, ничего я не пойму!!!
vkd
> Вот и в этом проекте (надыбал здесь: http://gungine.gamedev.ru/step3.zip ) та
> же трабла!!!
Скомпилилось, запустилось...
vkd
Значит проблемы в настройках студии
Не уверен, что поможет
Tools -> Options -> Projects -> VC++ Directories -> Include Files. Путь к Windows SDK должен быть выше, чем путь к DirectX SDK. И то же самое для Library Files.
Спасибо Вам за внимание!
Сделал все, как Вы сказали, не помогло, ту же ошибку выдает, хоть ты убейся! Может еще ей чего сделать?
vkd
Rebuild делали?
откуда ж в express edition возьмётся platform sdk?
Зайди в файл TemplateProj.cpp и скопируй код сюда.
Phuntik
Перестройку? Делал.
Теперь он нашел ошибку в winnt.h
Megabyte-Ceercop
Он в проекте не один.
Цепляю сам проект.
Пример
http://www.gamedev.ru/files/?id=50023
Suslik
> откуда ж в express edition возьмётся platform sdk?
В поставку Visual Studio 2008 Express Edition входит урезанная версия Plartform SDK.
Mr. Zealot
1. И что это значит?
2. А как его дополнить?
Слушайте, что за дело, почему???
Я компилю пустой Win проект (с одним пустым окном) (взял здесь http://wat.gamedev.ru/articles/MSVS?page=3 )
и Dev-C++ компилит и выдает exe- шник (правда проц грузит по-страшному), а VC++8 опять жалуется на ту же ошибку в winnt.h, и еще несколько "траблов" находит.
Вот что он пишет:
Журнал построения Построение начат: проект: Пустое Win приложение, .Конфигурация: Debug|Win32
Командные строки Создание временного файла "d:\мои проекты игр\обучение\Пустое Win приложение\Пустое Win приложение\Debug\RSP00000840402636.rsp" с содержимым
[
/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /c /ZI /TP ".\main.cpp"
]
Создаю командную строку "cl.exe @"d:\мои проекты игр\обучение\Пустое Win приложение\Пустое Win приложение\Debug\RSP00000840402636.rsp" /nologo /errorReport:prompt"
Окно выходных данных Компиляция...
main.cpp
c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(236) : error C2059: синтаксическая ошибка: ;
d:\мои проекты игр\обучение\пустое win приложение\пустое win приложение\main.cpp(93) : error C2664: LoadIconW: невозможно преобразовать параметр 2 из 'const char *' в 'LPCWSTR'
Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
d:\мои проекты игр\обучение\пустое win приложение\пустое win приложение\main.cpp(96) : error C2440: =: невозможно преобразовать 'const char *' в 'LPCWSTR'
Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
d:\мои проекты игр\обучение\пустое win приложение\пустое win приложение\main.cpp(97) : error C2440: =: невозможно преобразовать 'const char *' в 'LPCWSTR'
Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
d:\мои проекты игр\обучение\пустое win приложение\пустое win приложение\main.cpp(111) : error C2664: CreateWindowExW: невозможно преобразовать параметр 2 из 'const char *' в 'LPCWSTR'
Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
Результаты Журнал построения был сохранен в "file://d:\мои проекты игр\обучение\Пустое Win приложение\Пустое Win приложение\Debug\BuildLog.htm"
Пустое Win приложение - ошибок 5, предупреждений 0
vkd
В настройках проекта отключи юникод (general -> character set = Use Multi-Byte Character Set)
А вообще, код программы с пустым окном студия может сделать сама.
Файл -> новый проект -> win32 project -> ну и там в настройках..
Тема в архиве.