Форум программистов, компьютерный форум, киберфорум
DirectX
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
4 / 4 / 0
Регистрация: 26.09.2013
Сообщений: 33
1

DirectX11 + Visual Studio 2015 + Toolset v140 + Windows 7

14.08.2016, 21:33. Просмотров 1936. Ответов 9
Метки нет (Все метки)

Здравствуйте!

Помогите пожалуйста разобраться как собрать проект, использующий DirectX 11. При этом сборка производится в Visual Studio 2015, с помощью toolset'a v140. Все это к тому же происходит на Windows 7.

Ранее я собирал проект с помощью тулсета v120, и DirectX 11 SDK June 2010. Но увы, данный SDK директа приводит к ошибкам компиляции, так как, насколько я понимаю, код в старых реализациях директа не отвечает новым стандартам языка (11-му и 14-му).

Видел и на растертеке, и в других источниках советы, по поводу использования Win 10 SDK. Нашел такое, к тому же при сборке с помощью тулсета v140, автоматически указываются директории данных инклудов.
Но проблема заключается в следующем: так как я работаю на Win7, то понятное дело я должен в target platform устанавливать 8.1. Собственно, просмотрел я файлы директории 8.1 и не обнаружил там, нужную мне d3d11tex.h. Куда она делась?

В директории 8.0, есть папка shared, в которой собственно лежат, все нужные мне инклуды, в том числе и d3d11tex.h. Но target platform 8.0 установить я не могу (попросту отсутствует как и 10.0 в списке выбора платформ).
А если использовать одни инклуды из 8.0 а другие из 8.1, не приведет ли это к несовместимости между ними?

В итоге полностью запутался в домыслах по поводу того, какие же файлы мне следует использовать и как вообще собирать проект в моем случае, и возможно ли это сделать вообще.
Заранее спасибо за ответ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2016, 21:33
Ответы с готовыми решениями:

Построение невозможно - MSB8020: The builds tools for v140 (Platform Toolset = 'v140') cannot be found
Пробую собрать и выдает ошибку: 1>------ Построение начато: проект: MiniBase, Конфигурация:...

Windows form в Visual Studio 2015
Всем привет, я очень давно не сталкивался с C++, но сейчас решил учить этот язык для создания...

Зависает Visual Studio 2015 на Windows 10 Pro
Ребят, недавно обновился до Win10 и VS2015 и тут был разочарован тем что при запуске примерно через...

Не могу установить Visual Studio 2015 - Windows 7
Стоит VS2008, может из-за этого ошибки

9
158 / 146 / 14
Регистрация: 03.02.2012
Сообщений: 668
Записей в блоге: 1
14.08.2016, 22:59 2
Ваш проект компилируется на VS2013 ( он же V120 ) ?
0
4 / 4 / 0
Регистрация: 26.09.2013
Сообщений: 33
14.08.2016, 23:13  [ТС] 3
В том то и суть, что он абсолютно полностью как в Debug так и в Release компилируется на VS 2012 и на VS 2015 с тулсетом v110. Я изначально писал под него. Но теперь понадобилось перейти на новый, так как тот не поддерживает новый стандарт C++.

Извините, не заметил что Вы про 120 - не пробовал. Это критично, следует попробовать?
0
158 / 146 / 14
Регистрация: 03.02.2012
Сообщений: 668
Записей в блоге: 1
14.08.2016, 23:23 4
Какие ошибки при компиляции VS2015 ( он же V140 ) ?
0
4 / 4 / 0
Регистрация: 26.09.2013
Сообщений: 33
15.08.2016, 03:20  [ТС] 5
В хедере dxgi1_2.h выдает:

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2143: syntax error: missing ',' before '*'
error C2061: syntax error: identifier 'DXGI_RGBA'

На строки:

C++
1
2
3
4
5
6
7
virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor( 
            /* [annotation][in] */ 
            _In_  const DXGI_RGBA *pColor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor( 
            /* [annotation][out] */ 
            _Out_  DXGI_RGBA *pColor) = 0;
Компилировал с новым Effects11 (под VS2015) и DX SDK June 2010.

P.S. При попытке собрать проект с хедерами из Windows Kits\8.1\ та же ошибка.
0
4 / 4 / 0
Регистрация: 26.09.2013
Сообщений: 33
16.08.2016, 15:51  [ТС] 6
В общем, я попытался перестроить весь проект на новые библиотеки DirectXTex и DirextXMath (вместе с DirectXCollision), и убрал полностью D3DX библиотеку. В данный момент весь директ, который я использую лежит в Win Kits\8.1. Компиляция приводит к следующим ошибкам:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtree(2047): error C3848: expression having type 'const `anonymous-namespace'::StringCompare' would lose some const-volatile qualifiers in order to call 'bool `anonymous-namespace'::StringCompare::operator ()(PCHAR,PCHAR)'

Вот так выглядит строка в которой указывается ошибка:
C++
1
2
3
4
bool _Compare(const key_type& _Left, const key_type& _Right) const
        {   // compare key_type to key_type, with debug checks
        return (_DEBUG_LT_PRED(this->_Getcomp(), _Left, _Right));
        }
Это единственная ошибка при компиляции. Как исправить ее?
0
158 / 146 / 14
Регистрация: 03.02.2012
Сообщений: 668
Записей в блоге: 1
17.08.2016, 08:39 7
Дело в том, что DirectX претерпел перемены с выходом Windows 8.1 и версия SDK от June2010 отличается от интегрированную в Windows 8.1.

Вот , прочитайте.
Кроме этого изменялись библиотеки VS2015.

Вам придётся самостоятельно искать отличия и править код, если вы планируете пересесть на более новую версию VS и DirectX.

Приложения с использованием DirectX SDK ( June 2010 ) компилируются и работают под Windows 10 при условии, что на компьютере установлен DirectX SDK ( June 2010 ) и вы пользуетесь компилятором VS2012, VS2013 ( в VS2013 тоже были изменения, но менее серьёзные чем в VS2015 )

Добавлено через 4 минуты
Просто пошерстите Google на предмет ваших ошибок и перемен.

Например : Изменения
1
4 / 4 / 0
Регистрация: 26.09.2013
Сообщений: 33
17.08.2016, 16:05  [ТС] 8
В целом уже шерстил, и на стек оверфлоу тоже советовали полностью исключить старый директ вместе с D3DX и компилировать полностью под новую версию. Уже заменил D3DX11 на DirectXTex и Effects11 (последней версии) и убрал какие-либо связи со старым SDK. Уже начал работу, но параллельно ищу как раз причину последней ошибки. Оказывается, xtree.h не относится к DirectX вообще никак. Он относится к std::map, который я как раз и использую. И единственная ошибка компиляции как раз в этом файле, не в директовых. Как-то странно что критует именно он, так как раньше все же нормально компилировалось, и стандарты новые (11-й и 14-й) насколько я знаю не меняли ничего в работе map. Сейчас буду проверять в чем ошибка.

Спасибо за помощь по ДиректХ. Я конечно надеялся на более адекватный порт, но майкрософт как обычно показывает себя во всей своей красе...
0
158 / 146 / 14
Регистрация: 03.02.2012
Сообщений: 668
Записей в блоге: 1
17.08.2016, 16:19 9
Вы это читали ?
1
4 / 4 / 0
Регистрация: 26.09.2013
Сообщений: 33
17.08.2016, 16:47  [ТС] 10
Читал, и насколько я понимаю, у меня данная проблема скрывается за работой с map. Я создаю асоц. массив для объектов собственного типа и теперь остается найти то место, где из под константы вызываются функции, ну и собственно определить данные функции константными.

Добавлено через 7 минут
Аа... Наверное это я еще настолько ламер, что объявляю в функторе сравнения оператор () не константным. С этой проблемой разобрался. Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2016, 16:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Работает ли Visual Studio Community 2015 на Windows 7?
1. Будет ли работать Visual Studio Community 2015 на Windows 7? 2. Если да, то нужно ли удалять...

Visual Studio Community 2015 и приложения под Windows 7
Вопрос может звучать глупо, но все же. Слышала, что якобы приложения, сделанные на ней, на Windows...

Как добавить C# и Windows Forms в Visual Studio 2015
Друзья. Подскажите как добавить c# и windows forms в visual studio 2015. P.S. у меня только...

Создание Windows Forms проекта в Visual Studio 2015
Друзья, помогите, не дайте сойти с ума. Присутствует ли какая-то возможность заиметь привычные...

Программа, скомпилированная в Visual Studio 2015, не работает в Windows XP
Стоит 2015 студия на семерке, проект WPF Net 4.5 Скидываю полученный exe на XP появляется такая...

Где в Visual Studio 2015 находится Windows Store?
Начал изучать C# по книге Эндрю Стиллмен Изучаем C# 3-е издание 2014 г. Там написано. Запустите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.