0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
||||||||||||||||
1 | ||||||||||||||||
Ошибка в коде10.02.2013, 20:08. Показов 3429. Ответов 8
Метки нет (Все метки)
Здравствуйте. В книге "ООП" Р. Лафоре, в главе 6 есть программка. Которая не хочет запускаться. Сперва набирал сам, после "долгих мучений" решил запустить оригинальный код посмотреть или запуститься - увы. Запускал в CB и в VS.
msoftcon.h и msoftcon.cpp файлы закинул в папку с проектом. Топ получился очень длинный, если модератор как-то сможет уменшить - буду благодарен : ( Вот сам код:
Ошибки в CB: Код
obj\Debug\main.o||In function `main':| \Tetsnaf\main.cpp|30|undefined reference to `init_graphics()'| \Tetsnaf\main.cpp|43|undefined reference to `set_cursor_pos(int, int)'| \Tetsnaf\main.cpp|22|undefined reference to `set_color(color, color)'| \Tetsnaf\main.cpp|23|undefined reference to `set_fill_style(fstyle)'| \Tetsnaf\main.cpp|24|undefined reference to `draw_circle(int, int, int)'| ||=== Build finished: 5 errors, 0 warnings ===| Код
1>------ Build started: Project: MyFirsProgram, Configuration: Debug Win32 ------ 1> Redaktor.cpp 1>Redaktor.obj : error LNK2005: _main already defined in Vararg.obj 1>Redaktor.obj : error LNK2019: unresolved external symbol "void __cdecl set_cursor_pos(int,int)" (?set_cursor_pos@@YAXHH@Z) referenced in function _main 1>Redaktor.obj : error LNK2019: unresolved external symbol "void __cdecl init_graphics(void)" (?init_graphics@@YAXXZ) referenced in function _main 1>Redaktor.obj : error LNK2019: unresolved external symbol "void __cdecl draw_circle(int,int,int)" (?draw_circle@@YAXHHH@Z) referenced in function "public: void __thiscall circle::draw(void)" (?draw@circle@@QAEXXZ) 1>Redaktor.obj : error LNK2019: unresolved external symbol "void __cdecl set_fill_style(enum fstyle)" (?set_fill_style@@YAXW4fstyle@@@Z) referenced in function "public: void __thiscall circle::draw(void)" (?draw@circle@@QAEXXZ) 1>Redaktor.obj : error LNK2019: unresolved external symbol "void __cdecl set_color(enum color,enum color)" (?set_color@@YAXW4color@@0@Z) referenced in function "public: void __thiscall circle::draw(void)" (?draw@circle@@QAEXXZ) 1>D:\Documents and Settings\Максим\мои документы\visual studio 2010\Projects\MyFirsProgram\Debug\MyFirsProgram.exe : fatal error LNK1120: 5 unresolved externals ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Нашел информацию что нужно юникод отключить. Сделал - не работает. Возможно кто-то может хотя бы подсказать что это за ошибки ?
0
|
10.02.2013, 20:08 | |
Ответы с готовыми решениями:
8
Ошибка в коде (Ошибка сегментирования (core dumped) В чём ошибка.В коде там где коментарий там ошибка поучается. Ошибка в коде В коде ошибка |
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
10.02.2013, 20:19 | 2 |
Скопировал ваш код в новый проект в VS2012. Единственное, что надо было исправить для успешной компиляции: в свойствах проекта поставить мульти-байтную кодировку, а в функции draw_rectangle в начале приписать int j; и убрать int в цикле for ниже.
0
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
10.02.2013, 21:02 [ТС] | 3 |
Благодарю за комментарий. Сделал как вы сказали.
Уже понял что не так делал в самом начале. Вот сейчас уже одна ошибка: 1>d:\documents and settings\максим\мои документы\visual studio 2010\projects\myfirsprogram\myfirsprogram\msoftcon.cpp(17): error C2664: 'CreateFileA' : cannot convert parameter 1 from 'const wchar_t [8]' to 'LPCSTR' Нашел в интернете что якобы ошибка в функции init_graphics строка hConsole = CreateFile(L"CONOUT$", GENERIC_WRITE | GENERIC_READ, Нужно было добавить L. Добавил, но результата нету.
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
10.02.2013, 21:07 | 4 |
В свойствах проекта в VS нужно кодировку сменить на мультибайтную.
Или L придется дописывать у каждой символьной строки, которая есть в проекте.
0
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
10.02.2013, 21:14 [ТС] | 5 |
Project - > "имя проекта" property... -> configuration Properties -> General - > Сharacter set -> Use Multi-Bite Charakcter set. Правильно? Если да, то так и сделал. Не помогает(
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
10.02.2013, 21:22 | 6 |
0
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
10.02.2013, 21:22 [ТС] | 7 |
1>d:\documents and settings\максим\мои документы\visual studio 2010\projects\myfirsprogram\myfirsprogram\msoftcon.cpp(17): error C2664: 'CreateFileA' : cannot convert parameter 1 from 'const wchar_t [8]' to 'LPCSTR'
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
10.02.2013, 21:24 | 8 |
Заархивируй проект и скинь сюда.
1
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
10.02.2013, 21:32 [ТС] | 9 |
Перед cputs поставил нижний слеш (_cputs) и заработало. СВ сразу же указало на ошибки (на j про которое вы говорили, тоже показывало), а VS2010 показывал совершенно иное.
Спасибо большое что отозвались! Одна ошибка в книге, принесла незаменимый опыт ))
0
|
10.02.2013, 21:32 | |
10.02.2013, 21:32 | |
Помогаю со студенческими работами здесь
9
Ошибка в коде Ошибка в коде! Ошибка в коде Ошибка в коде Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |