Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.78
axss
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
#1

Code::Blocks подключение библиотек для работы с графикой - C++

16.05.2012, 11:50. Просмотров 10833. Ответов 16
Метки нет (Все метки)

Взялся за графику, первая простенькая cpp с тремя строчками для настройки так сказать И сразу проблема.
подключил модуль #include <graphics.h>
при компиляции выдало ошибку в модуле:
Код
j:\programs\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\graphics.h|302|error: redefinition of 'int right'|
j:\programs\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\graphics.h|302|error: 'int right' previously declared here|
||=== Build finished: 2 errors, 0 warnings ===|
Нашел, что надо еще и библиотеки подключать.
Код
libbgi.a; libgdi32.a; libcomdlg32.a; libuuid.a; liboleaut32.a; libole32.a;
Добавил в Settings->Compiler and debuger->Linker settings.

Но все равно не работает! Вопрос.
Что делаю не так?
Как сделать правильно?
Можно ли подключаемые библиотеки прописывать непосредственно в файле(типо #include <graphics.h>), чтобы не отключать их при работе с другими файлами.

P.S.: Ошибку в graphics.h я исключил, так как в других компиляторах он работает, да и исправление не помогло..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
16.05.2012, 14:27     Code::Blocks подключение библиотек для работы с графикой #2
project > build options > release > linker > add как-то вот так
axss
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
16.05.2012, 18:36  [ТС]     Code::Blocks подключение библиотек для работы с графикой #3
Ошибка на месте
[IMG]http://i38.***********/big/2012/0516/0c/f0382b201cba24dc11927709ce795e0c.png[/IMG]
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
16.05.2012, 19:50     Code::Blocks подключение библиотек для работы с графикой #4
Ну и что ж вы хотите если у вас там черным(красным) по белому написано что переобъявлена переменная right
axss
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
16.05.2012, 20:17  [ТС]     Code::Blocks подключение библиотек для работы с графикой #5
а что ж вы посоветуете, если все graphics.h в интернете одинаковые. Во всех эта переменная объявлена 2 раза. А попробуй поменять первый right на top - вываливается по ошибке на каждую команду связанную с графикой.

Добавлено через 5 минут
Сделал!
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
16.05.2012, 20:58     Code::Blocks подключение библиотек для работы с графикой #6
Цитата Сообщение от axss Посмотреть сообщение
а что ж вы посоветуете, если все graphics.h в интернете одинаковые. Во всех эта переменная объявлена 2 раза. А попробуй поменять первый right на top - вываливается по ошибке на каждую команду связанную с графикой.

Добавлено через 5 минут
Сделал!
Что сделали?
axss
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
17.05.2012, 12:08  [ТС]     Code::Blocks подключение библиотек для работы с графикой #7
Опять поставил top вместо right. И самое главное - main.cpp почему то не сохранился как элемент проекта, поэтому на него не распространялись библиотеки. Подключил его туда и все заработало!
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
19.03.2013, 00:21     Code::Blocks подключение библиотек для работы с графикой #8
Подскажите какую библиотеку следует подключить, чтобы вне графического режима работала getch(). Скажем, если я подключаю graphics.h и conio.h с графикой все работает, getch() останавливает прорисовку. А если оставляю только conio и использую getch() для манипуляции с клавиатурой, то возникает ошибка графики до тех пор пока я в linker settings не удалю все библиотеки для работы с графикой... Ну так вот, можно ли работать с getch() и так и так не отключая библиотеки? Скажем подключив какую нить еще?
Мне это не принципиально... а так чтобы знать.
MrGluck
Модератор
Эксперт CЭксперт С++
6988 / 4159 / 592
Регистрация: 29.11.2010
Сообщений: 11,034
19.03.2013, 00:36     Code::Blocks подключение библиотек для работы с графикой #9
samorodov, проприетарная функция getch() (правильнее _getch()) определена лишь в conio.h
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
19.03.2013, 09:37     Code::Blocks подключение библиотек для работы с графикой #10
Цитата Сообщение от MrGluck Посмотреть сообщение
samorodov, проприетарная функция getch() (правильнее _getch()) определена лишь в conio.h
Я это знаю. Я о другом спрашивал...
MrGluck
Модератор
Эксперт CЭксперт С++
6988 / 4159 / 592
Регистрация: 29.11.2010
Сообщений: 11,034
19.03.2013, 15:27     Code::Blocks подключение библиотек для работы с графикой #11
Цитата Сообщение от samorodov Посмотреть сообщение
Подскажите какую библиотеку следует подключить, чтобы вне графического режима работала getch().
Цитата Сообщение от samorodov Посмотреть сообщение
Ну так вот, можно ли работать с getch() и так и так не отключая библиотеки? Скажем подключив какую нить еще?
Цитата Сообщение от samorodov Посмотреть сообщение
Я это знаю. Я о другом спрашивал...
Вы уж определитесь, чего хотите
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
19.03.2013, 21:04     Code::Blocks подключение библиотек для работы с графикой #12
Цитата Сообщение от MrGluck Посмотреть сообщение
Вы уж определитесь, чего хотите
Ну ладно, ладно. Скажем я хочу сделать так
initwindow(500,500,"RK");
getch();
line(50,0,50,200);
я подключу graphics.h + библиотеки

А если так
int key = getch();
тогда я могу и не подключать conio.h, а использовать graphics.h если в проге есть графика

А вот если у меня в проге нет графики я могу подключить только conio.h, но в этом случае возникает ошибка при использовании getch до тех пор пока я не отключу библиотеки связанные с графикой.
Вопрос: Как не отключая библиотеки используя conio.h и не используя graphics.h добиться, чтобы при запуске не выдавало ошибку из-за getch?
MrGluck
Модератор
Эксперт CЭксперт С++
6988 / 4159 / 592
Регистрация: 29.11.2010
Сообщений: 11,034
19.03.2013, 23:10     Code::Blocks подключение библиотек для работы с графикой #13
samorodov, чем вызвана потребность в данной функции? Как насчет system("pause") или getchar() ?
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
22.03.2013, 11:33     Code::Blocks подключение библиотек для работы с графикой #14
Цитата Сообщение от MrGluck Посмотреть сообщение
samorodov, чем вызвана потребность в данной функции? Как насчет system("pause") или getchar() ?
Первый разумный ответ, точнее вопрос на вопрос
Ну если так посмотреть можно использовать и cin >> A; или scanf("%s",str); или gets(str), но все они требуют дополнительного нажатия на Enter
А для sistem("pause") нужно подключать windows.h, но даже дело не в подключении дополнительной библиотеки а в определении нажимаемой клавиши: int key = getch();
Проблема в том, что когда работаешь то с графикой, то без нее, библиотеки нужно то подключать, то отключать...
MrGluck
Модератор
Эксперт CЭксперт С++
6988 / 4159 / 592
Регистрация: 29.11.2010
Сообщений: 11,034
22.03.2013, 14:00     Code::Blocks подключение библиотек для работы с графикой #15
Цитата Сообщение от samorodov Посмотреть сообщение
sistem("pause")
system("pause"); и определена она в cstdlib(stdlib.h)
Так я понял, что у вас с conio.h конфликтует.

Как недовариант - использовать другую IDE для работы только с графикой/без графики.
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
23.03.2013, 15:10     Code::Blocks подключение библиотек для работы с графикой #16
Цитата Сообщение от MrGluck Посмотреть сообщение
system("pause"); и определена она в cstdlib(stdlib.h)
Ну вообще-то как в stdlib.h так и в windows.h она есть...
Цитата Сообщение от MrGluck Посмотреть сообщение
Так я понял, что у вас с conio.h конфликтует.
А я о чем все это время говорил?))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 15:12     Code::Blocks подключение библиотек для работы с графикой
Еще ссылки по теме:
C++ Code::Blocks IDE для ubuntu
Программа code blocks пишет что не хватает If для Else C++
Что не так в коде? Рассчитать значение у для значений х. Code::Blocks выдает ошибку. C++
Где взять и как подцепить к Code Blocks бесплатный компилятор x64 стандарта C++11 для Windows 7 x64? C++
C++ Библиотека для работы с графикой и текстом С++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 15:12     Code::Blocks подключение библиотек для работы с графикой #17
glut.h
Yandex
Объявления
23.03.2013, 15:12     Code::Blocks подключение библиотек для работы с графикой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru