Консультация № 180816
17.11.2010, 10:43
0.00 руб.
17.11.2010, 11:03
0 10 1
Добрый вечер, Уважаемые эксперты.
Помогите, пожалуйста, разобраться с Visual Studio 2008, а именно С++.
Проблема в следующем. Хочу настроить ее для работы с SDK игры SeriousSam: TSE.
Для Visual C++ 6.0 есть описание и отлично вышло настроить согласно ему. Но, к сожалению, в
Visual C++ 2008 я не разобрался, нужно ли преобразовывать проект к новому формату, заработает ли он при этом,
А главное - где находится Project -> Dependencies и как настроить Custom Build?
В общем само описание для Visual Studio 6.0:

Или же полная книга:
URL >>
Нужная глава:
Downloading, installing the SDK and setting up Visual C++, а именно та часть, которая идет после настройки системных переменных.
Пожалуйста, подскажите, где находятся основные моменты описанные в данной части в Visual Studio 2008, и вообще возможно ли скомпилировать данный проект на ней. Заранее спасибо.


Обсуждение

Неизвестный
17.11.2010, 11:07
общий
это ответ
Здравствуйте, Dimon4ik!
посмотрите в библиотеке
http://msdn.microsoft.com/ru-ru/library/60k1461a(v=VS.90).aspx
http://msdn.microsoft.com/ru-ru/library/7hfabkez(v=VS.90).aspx
5
Спасибо. Ознакомлюсь.
Неизвестный
17.11.2010, 21:56
общий
Не нахожу там замены Tools-Options-Directories.
Сам искал, тоже без результатов...
Неизвестный
17.11.2010, 22:04
общий
А Tools->Options->Project and solution->VC++ directories не то?
Неизвестный
20.11.2010, 01:40
общий
Спасибо. Это как раз то, что я искал.
Подключил все, что нужно и выдало следующие ошибки:
Код:
D:\Program Files\SDK\Sources\Engine/Base/CRC.h(20) : warning C4333: '>>' : right shift by too large amount, data loss
D:\Program Files\SDK\Sources\Engine/Math/Functions.h(438) : error C2666: 'fmod' : 3 overloads have similar conversions
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\math.h(561): could be 'long double fmod(long double,long double)'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\math.h(513): or 'float fmod(float,float)'
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\math.h(120): or 'double fmod(double,double)'
while trying to match the argument list '(ANGLE, double)'
D:\Program Files\SDK\Sources\Engine/Math/AABBox.h(94) : warning C4812: obsolete declaration style: please use 'AABBox<Type,iDimensions>::AABBox' instead
D:\Program Files\SDK\Sources\Engine/Math/AABBox.h(102) : warning C4812: obsolete declaration style: please use 'AABBox<Type,iDimensions>::AABBox' instead
D:\Program Files\SDK\Sources\Engine/Math/AABBox.h(112) : warning C4812: obsolete declaration style: please use 'AABBox<Type,iDimensions>::AABBox' instead
D:\Program Files\SDK\Sources\Engine/Graphics/GFX_wrapper.h(111) : error C2383: 'gfxSetOrtho' : default-arguments are not allowed on this symbol
D:\Program Files\SDK\Sources\Engine/Graphics/GFX_wrapper.h(117) : error C2383: 'gfxSetViewMatrix' : default-arguments are not allowed on this symbol
D:\Program Files\SDK\Sources\Engine/Graphics/GFX_wrapper.h(120) : error C2383: 'gfxSetTextureMatrix' : default-arguments are not allowed on this symbol
D:\Program Files\SDK\Sources\Engine/Graphics/GFX_wrapper.h(216) : error C2383: 'gfxSetTexCoordArray' : default-arguments are not allowed on this symbol

Без проекта по ним почти ничего не скажешь, но может хоть общая картина видна, то есть возможные варианты - проект не может работать под новой версией Visual Studio, какая то условность в новой версии добавлена и т. д.?
Код строки в которой студия нашла первую ошибку:
inline void CRC_AddWORD( ULONG &ulCRC, UBYTE uw)
{
CRC_AddBYTE(ulCRC, UBYTE(uw>> 8));
CRC_AddBYTE(ulCRC, UBYTE(uw>> 0));
};

По третей ошибке:
inline long double __CRTDECL fmod(_In_ long double _X, _In_ long double _Y)
{return (fmodl(_X, _Y)); }

Странно, почему студия на свои библиотеки жалуется...

Если по данным ошибкам можно описать в чем проблема, пожалуйста, подскажите.
Неизвестный
20.11.2010, 16:31
общий
Первое - это warning, если уверены в корректности кода, можно его проигнорировать. Насчёт fmod - надо посмотреть, где он в программе используется, там какая-то неоднозначность (возможно, в новой студии библиотека math расширена или обновлена, поэтому раньше было всё однозначно, а теперь компилятор не знает, какую версию функции выбрать). Насчёт последних 4-х ошибок тоже надо вызов смотреть.
Неизвестный
20.11.2010, 23:32
общий
На счет четырех последних:
Первые три:
Код:
// set frustrum matrix
extern void (*gfxSetFrustum)( const FLOAT fLeft, const FLOAT fRight,
const FLOAT fTop, const FLOAT fBottom,
const FLOAT fNear, const FLOAT fFar);
// set view matrix
extern void (*gfxSetViewMatrix)( const FLOAT *pfMatrix=NULL);

// set texture matrix
extern void (*gfxSetTextureMatrix)( const FLOAT *pfMatrix=NULL);

Последняя:
extern void (*gfxSetTexCoordArray)( GFXTexCoord *ptex, BOOL b4=FALSE); // b4 = projective mapping (4 FLOATS)
Неизвестный
22.11.2010, 16:43
общий
В последних трёх, по идее, перестанет ругаться, если убрать присвоение параметров по умолчанию. А первое вроде не так называется, как в ошибке...
Неизвестный
23.11.2010, 11:06
общий
Например, это -
( const FLOAT *pfMatrix=NULL);?
Неизвестный
23.11.2010, 13:20
общий
Ну да, убрать =NULL, т.е. оставить ( const FLOAT *pfMatrix).
Неизвестный
29.11.2010, 23:13
общий
Спасибо. Попробую
Форма ответа