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

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

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

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

16.05.2012, 11:50. Просмотров 11026. Ответов 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 я исключил, так как в других компиляторах он работает, да и исправление не помогло..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2012, 11:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Code::Blocks подключение библиотек для работы с графикой (C++):

Нужна помощь. Подключение библиотек Code::Blocks - C++
Доброго времени суток дамы и господа. Обращаюсь к за помощью. Облазил вес Гугл. Уже два месяца бьюсь и ничего не могу сделать. Как...

проблема с графикой в code blocks - C++
друг скинул готовую прогу-меню,но она у меня не компилится,выдает мне библиотеку &lt;graphics.h&gt; и ругается там на строчку #include &lt;sstream&gt; ...

Статическая линковка библиотек в Code::Blocks - C++
Люди добрые, подскажите пожалуйста как выполнить статическую линковку библиотек в Code::Blocks (16.01).

Подключение boost к Code::Blocks - C++
Есть boost, есть Code::Blocks. Как прикрутить boost к Code::Blocks??? Буду очень признателен за расширенный ответ.

Подключение glut к Code::Blocks - C++
Очень много проблем возникло с этим моментом. Хотя искал в сети решения. Во-первых сильное ли отношение имеет glut к OpenGL? И в чём...

Подключение библиотеки winpcap в Code Blocks - C++
Скачал WinPcap 4.1.2 Developer's Pack. Установил Version 4.1.3 Installer for Windows Driver +DLLs. В project build options&gt;link...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
16.05.2012, 14:27 #2
project > build options > release > linker > add как-то вот так
axss
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
16.05.2012, 18:36  [ТС] #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 #4
Ну и что ж вы хотите если у вас там черным(красным) по белому написано что переобъявлена переменная right
axss
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
16.05.2012, 20:17  [ТС] #5
а что ж вы посоветуете, если все graphics.h в интернете одинаковые. Во всех эта переменная объявлена 2 раза. А попробуй поменять первый right на top - вываливается по ошибке на каждую команду связанную с графикой.

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

Добавлено через 5 минут
Сделал!
Что сделали?
axss
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
17.05.2012, 12:08  [ТС] #7
Опять поставил top вместо right. И самое главное - main.cpp почему то не сохранился как элемент проекта, поэтому на него не распространялись библиотеки. Подключил его туда и все заработало!
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
19.03.2013, 00:21 #8
Подскажите какую библиотеку следует подключить, чтобы вне графического режима работала getch(). Скажем, если я подключаю graphics.h и conio.h с графикой все работает, getch() останавливает прорисовку. А если оставляю только conio и использую getch() для манипуляции с клавиатурой, то возникает ошибка графики до тех пор пока я в linker settings не удалю все библиотеки для работы с графикой... Ну так вот, можно ли работать с getch() и так и так не отключая библиотеки? Скажем подключив какую нить еще?
Мне это не принципиально... а так чтобы знать.
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
19.03.2013, 00:36 #9
samorodov, проприетарная функция getch() (правильнее _getch()) определена лишь в conio.h
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
19.03.2013, 09:37 #10
Цитата Сообщение от MrGluck Посмотреть сообщение
samorodov, проприетарная функция getch() (правильнее _getch()) определена лишь в conio.h
Я это знаю. Я о другом спрашивал...
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
19.03.2013, 15:27 #11
Цитата Сообщение от samorodov Посмотреть сообщение
Подскажите какую библиотеку следует подключить, чтобы вне графического режима работала getch().
Цитата Сообщение от samorodov Посмотреть сообщение
Ну так вот, можно ли работать с getch() и так и так не отключая библиотеки? Скажем подключив какую нить еще?
Цитата Сообщение от samorodov Посмотреть сообщение
Я это знаю. Я о другом спрашивал...
Вы уж определитесь, чего хотите
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
19.03.2013, 21:04 #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Эксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
19.03.2013, 23:10 #13
samorodov, чем вызвана потребность в данной функции? Как насчет system("pause") или getchar() ?
samorodov
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 11
22.03.2013, 11:33 #14
Цитата Сообщение от MrGluck Посмотреть сообщение
samorodov, чем вызвана потребность в данной функции? Как насчет system("pause") или getchar() ?
Первый разумный ответ, точнее вопрос на вопрос
Ну если так посмотреть можно использовать и cin >> A; или scanf("%s",str); или gets(str), но все они требуют дополнительного нажатия на Enter
А для sistem("pause") нужно подключать windows.h, но даже дело не в подключении дополнительной библиотеки а в определении нажимаемой клавиши: int key = getch();
Проблема в том, что когда работаешь то с графикой, то без нее, библиотеки нужно то подключать, то отключать...
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
22.03.2013, 14:00 #15
Цитата Сообщение от samorodov Посмотреть сообщение
sistem("pause")
system("pause"); и определена она в cstdlib(stdlib.h)
Так я понял, что у вас с conio.h конфликтует.

Как недовариант - использовать другую IDE для работы только с графикой/без графики.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2013, 14:00
Привет! Вот еще темы с ответами:

Подключение библиотеки audiere C++ Code Blocks - C++
Скачала архив (приложила его). Распаковала. Что делать дальше? Куда и что надо распихать? Заранее спасибо.

Code::Blocks IDE для ubuntu - C++
Поставил ubuntu. Скачал IDE... Подскажите как добавить библиотеку. Нет conio.h Пишу на C++. Это библиотека С? Может в этом проблема?

Программа code blocks пишет что не хватает If для Else - C++
Подскажите пожалуйста Программа code blocks пишет что не хватает If для Else что делать не знаю подсчитал ifы и elsы по 3 каждого ...

Что не так в коде? Рассчитать значение у для значений х. Code::Blocks выдает ошибку. - C++
рассчитать значение у для значений х, равных 4, 5, ..., 28,. на формулу не смотрите, фишка в том что код блокс выдает ошибку но в коде я...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.03.2013, 14:00
Ответ Создать тему
Опции темы

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