UnLoaded 313 Опубликовано 11 Декабря 2016 Кто нить пробовал движок собрать в VS2015 Community. Есть статья по сборке движка на Сталкерин, но там для 2010 студии, от 2015 прилично отличается. Когда-то давно чуток кодил в VC++ 6, теперь все по другому. Смысл есть вопросы задавать по 2015 студии ? Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 11 Декабря 2016 (изменено) @User_X.A.R26 Полно: С этим что делать ? s:\bugtrap\InPlaceNew.h(26): error C2084: функция "void *operator new(std::size_t,void *) throw()" уже имеет текст реализации C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_new.h(86): note: см. предыдущее определение "new" s:\bugtrap\InPlaceNew.h(37): error C2084: функция "void operator delete(void *,void *) throw()" уже имеет текст реализации C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_new.h(92): note: см. предыдущее определение "delete" С этим вроде понятно - судя по всему можно просто удалить из Encoding.h ? s:\bugtrap\Encoding.h(21): warning C4005: HIGH_SURROGATE_START: изменение макроопределения C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(93): note: см. предыдущее определение "HIGH_SURROGATE_START" s:\bugtrap\Encoding.h(23): warning C4005: HIGH_SURROGATE_END: изменение макроопределения C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(94): note: см. предыдущее определение "HIGH_SURROGATE_END" s:\bugtrap\Encoding.h(25): warning C4005: LOW_SURROGATE_START: изменение макроопределения C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(95): note: см. предыдущее определение "LOW_SURROGATE_START" s:\bugtrap\Encoding.h(27): warning C4005: LOW_SURROGATE_END: изменение макроопределения C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnls.h(96): note: см. предыдущее определение "LOW_SURROGATE_END" Изменено 11 Декабря 2016 пользователем UnLoaded Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 12 Декабря 2016 (изменено) Плюнул на VS2015 - установил VS2013. Дело пошло лучше, но уткнулся в следующее: 1>3DNow!Lib.cpp(56): error C2365: nan: переопределение; предыдущим определением было "функция" 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(508): см. объявление "nan" В файле 3DNow!Lib.cpp объявление выглядит так: static const __int32 nan = 0x7fffffff; а в файле Microsoft Visual Studio 12.0\VC\include\math.h прописано так: _CRTIMP double __cdecl nan(_In_ const char *); Если я правильно мыслю - надо переименовать nan в 3DNow!Lib.cpp, и найти все его упоминания в проекте и заменить на новое имя ? Изменено 12 Декабря 2016 пользователем UnLoaded Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 13 Декабря 2016 User_X.A.R26 писал(а): А вообще на какой редакции и какие конкретно сорсы собираешь? Там ведь есть пару уже фикшенных вариантов сорсов ЗП от Лохотрона Я не очень понимаю про какие-то редакции - скачал исходники из этой статьи, установил студию, теперь пытаюсь движок собрать... Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 3 Января 2017 Подскажите, что означает такая конструкция: Переменная1 = Функция1(может вернуть true или false) ? Переменная2(типа float) : 0; Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 3 Января 2017 (изменено) НаноБот писал(а): Тернарный оператор называется К чему такой мутняк ? Ведь в этом конкретном случае можно было написать: if Функция1 then Переменная1 = Переменная2 else Переменная1 = 0 end Он дает какое то преймущество над if\else ? Изменено 3 Января 2017 пользователем UnLoaded Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 15 Января 2017 Нашел такое в исходниках return !!m_flags.test(FAllowSprint); Полез в Вики смотреть список операторов C++, нет такого "!!" оператора. Поясните, что это и как понимать ? Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 15 Января 2017 Bak писал(а): а два оператора. Используется для привдения к булеву типу. Это типа так можно представить: return (bool)m_flags.test(FAllowSprint); ? Еще вопрос: пока читал про операторы, нашел там такую штуку "Синонимы операторов (диграфы)". Т.е. можно использовать синонимы(кстати привычные по Луа): and, or, not ну и еще несколько. Это работает в MS VC++ ? Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 19 Января 2017 Нашел такое в исходниках: if( true ) { ........... } else ........... if( true ) { ........... } else ........... Объясните как это понимать ? Если бы так было: bool b_value = true; if( b_value) { ....bool b_value = true; if( b_value) { .... тогда все понятно, но то, что выше . Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 31 Января 2017 float — это тип с плавающей запятой наименьшего размера. double — это тип с плавающей запятой, размер которого больше или равен размеру типа float, но меньше или равен размеру типа long double. Kondr48 писал(а): Могут ли быть ошибки? Ну и как поправить это дело?) Могут. Откуда нам знать ? Все зависит от конкретной ситуации - что именно хранится в этой переменной... 1 Поделиться этим сообщением Ссылка на сообщение