Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Не компилируется проект


Автор: Ripper 21.6.2008, 19:54
Доброго времени суток
Я вот недавно установил себе Visual Studio 2005 и никогда в ней не работал. Нужно чтоб заработали исходники, которые прилагаются к книге.

Скачать исходники к книге Андре Ламот-а. В инете читал что у народа компилируется без проблем. (Вот ссылка на исходники http://slil.ru/25918383)
Установил DirectX 9ый
Создал новый проект. Добавил туда все файлы .cpp и .h (соотвественно там в проектах есть папочка header files и source files)
Добавил .h, и .lib файлы в опциях проекта, чтоб он смог найти все эти файлы directx-a.
При компиляции вытелает много ошибок. Одна из них, например include <iostream.h> там было, я .h убрал. Вообщем много чего пробывал и ничего не получается. Половина варнингов и несколько ерроров вылетает, но поидее должно компилироваться все :(
Мне кажется я просто совсем что-то не так делаю т.к. почти не сидел за С++, только в dev-cpp сидел когда лабы в инсте делал. А тут программа, большая достаточно - разбираться не хочется, думаю и так должно все скомпилиться
Вот пример ошибок:
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(2526) : error C2664: 'TextOutW' : cannot convert parameter 4 from 'char *' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(2555) : error C2664: 'TextOutW' : cannot convert parameter 4 from 'char *' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(4079) : warning C4018: '<' : signed/unsigned mismatch
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(4129) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(4245) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(4368) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(4492) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5129) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5130) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5131) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5216) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5225) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5233) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5234) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5235) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5236) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5242) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5243) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5249) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5250) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5586) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5587) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5599) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5600) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5643) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5652) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5660) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5661) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5662) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5663) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5669) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5670) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5676) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(5677) : warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6013) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6014) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6026) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6027) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6155) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6155) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6155) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6155) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6163) : error C2228: left of '.x' must have class/struct/union
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6164) : error C2228: left of '.y' must have class/struct/union
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6194) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6194) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6194) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6194) : warning C4244: 'argument' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6202) : error C2228: left of '.x' must have class/struct/union
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6203) : error C2228: left of '.y' must have class/struct/union
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6237) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6237) : warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6240) : warning C4244: 'initializing' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6240) : warning C4244: 'initializing' : conversion from 'int' to 'float', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6247) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(6248) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data


Автор: Lazin 21.6.2008, 20:18
в опциях проекта найди параметр "character set" и установи его равным "not set"

Автор: Ripper 21.6.2008, 20:38
установил. 1>lll - 5 error(s), 133 warning(s) варнингов стало не меньше, как и ерроров (

Автор: UserNet 21.6.2008, 21:11
  Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\documents and settings\victor\рабочий стол\source\source\t3diichap01\t3dlib1.cpp(2555) : error C2664: 'TextOutW' : cannot convert parameter 4 from 'char *' to 'LPCWSTR'

можно сделать так перед 4 параметром поставить (LPCWSTR) 
или TEXT("нужный тебе текст") должно работать.

Автор: Ripper 22.6.2008, 10:12
Просто проблема в том, что это все должно компилироваться без поправки кода (наверно)
Можете кто нибудь объснить, что значит character set и как здесь играют роль эти кодировки?
Ещё я попробывал в VC++ 6.0 скомпилировать, аналогично куча ошибок, правда уже других, но мне кажется там тоже нужно что-то с кодировками поменять (только я не нашел character set)
=\

Автор: bsa 23.6.2008, 10:32
В настройках проекта отключи Unicode

Автор: Ripper 23.6.2008, 12:09
bsa, я так и сделал, если это character set. остались 5 ошибок и больше сотни варнингов

Автор: bsa 23.6.2008, 12:14
Цитата(Ripper @ 23.6.2008,  12:09)
bsa, я так и сделал, если это character set. остались 5 ошибок и больше сотни варнингов

Ошибки процитируй (предупреждения не нужно).

Автор: v_enom 13.4.2009, 01:57
эти файлы с ошибками...

чего стоит только код:

Код

// t3dlib1.h
// load data into 
for (int index=0; index<num_frames; index++)

    bob->animations[anim_index][index] = sequence[index];

// set the end of the list to a -1
bob->animations[anim_index][index] = -1;


он к index обращаться пытается!!! в то время, как область видимости внутри цикла для index действует.

соответственно получаем эрор
Error    23    error C2065: 'index' : undeclared identifier    f:\мои документы\visual studio 2005\projects\gamelessons\gamelessons\t3dlib1.cpp    805    


думаете Ламот описался? пожалуйста:
Код

for (int index=0; index < poly->num_verts-1; index++)
        {
        // draw line from ith to ith+1 vertex
        Draw_Clip_Line16(poly->vlist[index].x+poly->x0, 
                         poly->vlist[index].y+poly->y0,
                         poly->vlist[index+1].x+poly->x0, 
                         poly->vlist[index+1].y+poly->y0,
                         poly->color,
                         vbuffer, lpitch);

        } // end for

       // now close up polygon
       // draw line from last vertex to 0th
       Draw_Clip_Line16(poly->vlist[0].x+poly->x0, 
                        poly->vlist[0].y+poly->y0,
                        poly->vlist[index].x+poly->x0, 
                        poly->vlist[index].y+poly->y0,    // опять индекс!!!
                        poly->color,
                        vbuffer, lpitch);


как он "поверьте мне я очень долго тестировал эти библиотеки"  я не знаю. но файлы не рабочие и как дальше что-то делать и учиться по этой книге для меня сейчас остается загадкой....
может кто знает другие книги по игроделанию?????



Автор: Rickert 13.4.2009, 03:45
Почему вы покупаете книге с красивой обложкой? Почему нельзя заглянуть в соответствующий раздел форума и посмотреть рекомендуемую литературу, ссылки. Я, например, на своём веку не видел НИ ОДНОЙ книги, которая бы хоть в какой-то мере могла полноценно описать работу с OpenGL/DirectX. Везде недомолвки, ошибки, опечатки.

Автор: J0ker 13.4.2009, 04:03
о блин, могильщики

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)