Перейти к контенту

C++


Рекомендуемые сообщения

Кто нить пробовал движок собрать в VS2015 Community. Есть статья по сборке движка на Сталкерин, но там для 2010 студии, от 2015 прилично отличается. Когда-то давно чуток кодил в VC++ 6, теперь все по другому. Смысл есть вопросы задавать по 2015 студии ?

Поделиться этим сообщением


Ссылка на сообщение

@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"
Изменено пользователем UnLoaded

Поделиться этим сообщением


Ссылка на сообщение

Плюнул на 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, и найти все его упоминания в проекте и заменить на новое имя ?
Изменено пользователем UnLoaded

Поделиться этим сообщением


Ссылка на сообщение

 

 

  User_X.A.R26 писал(а):
А вообще на какой редакции и какие конкретно сорсы собираешь? Там ведь есть пару уже фикшенных вариантов сорсов ЗП от Лохотрона

Я не очень понимаю про какие-то редакции - скачал исходники из этой статьи, установил студию, теперь пытаюсь движок собрать...

Поделиться этим сообщением


Ссылка на сообщение

Подскажите, что означает такая конструкция:

Переменная1 = Функция1(может вернуть true или false) ? Переменная2(типа float) : 0;

Поделиться этим сообщением


Ссылка на сообщение
  НаноБот писал(а):
Тернарный оператор называется

К чему такой мутняк ? Ведь в этом конкретном случае можно было написать:

if Функция1 then

     Переменная1 =  Переменная2

else

    Переменная1 =   0

end

Он дает какое то преймущество над if\else ?

Изменено пользователем UnLoaded

Поделиться этим сообщением


Ссылка на сообщение

Нашел такое в исходниках

return !!m_flags.test(FAllowSprint);

Полез в Вики смотреть список операторов C++, нет такого "!!" оператора. Поясните, что это и как понимать ?

Поделиться этим сообщением


Ссылка на сообщение

 

 

  Bak писал(а):
а два оператора. Используется для привдения к булеву типу.

Это типа так можно представить:  return (bool)m_flags.test(FAllowSprint); ?

 

Еще вопрос: пока читал про операторы, нашел там такую штуку "Синонимы операторов (диграфы)". Т.е. можно использовать синонимы(кстати привычные по Луа): and, or, not ну и еще несколько. Это работает в MS VC++ ?

Поделиться этим сообщением


Ссылка на сообщение
Нашел такое в исходниках:
if( true )
{
     ...........
}
else
     ........... 
​Объясните как это понимать ? Если бы так было:
bool b_value = true;
if( b_value)
{
....

тогда все понятно, но то, что выше  :huh:  :wacko::wacko2:  .

Поделиться этим сообщением


Ссылка на сообщение
float — это тип с плавающей запятой наименьшего размера.
double — это тип с плавающей запятой, размер которого больше или равен размеру типа float, но меньше или равен размеру типа long double.

 

 

  Kondr48 писал(а):
Могут ли быть ошибки? Ну и как поправить это дело?)

Могут. Откуда нам знать ? Все зависит от конкретной ситуации - что именно хранится в этой переменной...

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...