Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/133: Рейтинг темы: голосов - 133, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 17

Р. Лафоре "ООП в C++". Не компилируется пример с консольной графикой

05.09.2013, 09:51. Показов 27350. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изучаю C++ по книге Р. Лафоре. Дошёл до 5-ой главы, и мне встретился пример использования консольной графики. Страница 179. Пример называется "Структура circle". К этому примеру прилагается библиотека "msoftcon.h". Ну пример я переписал, библиотеку подключил и в папку с .cpp файлом положил. Работаю в DevC++. И после компилирования выскакивает несколько ошибок:
  • [Linker error] undefined reference to `set_color(color, color)'
  • [Linker error] undefined reference to `set_fill_style(fstyle)'
  • [Linker error] undefined reference to `draw_circle(int, int, int)'
  • [Linker error] undefined reference to `init_graphics()'
  • [Linker error] undefined reference to `set_cursor_pos(int, int)'
  • ld returned 1 exit status


И вот не знаю что делать. В чём ,собственно говоря, проблема? Заранее спасибо всем кто откликнется.

Вот код самого примера:
Пример

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  /*Р. Лафоре. ООП в C++*/
/*Глава 5. Функции.*/
 
#include "msoftcon.h"
 
/////////////////////////////////////////////////
struct circle
{
      int xCo,yCo;      //Координаты центра.
      int radius;
      color fillcolor;  //цвет
      fstyle fillstyle; //стиль заполнения
      
      };
////////////////////////////////////////////////
void circ_draw(circle c)
{
     set_color(c.fillcolor);
     set_fill_style(c.fillstyle);
     draw_circle(c.xCo,c.yCo,c.radius);
     }
////////////////////////////////////////////////
int main()
{
    
    init_graphics(); //инициализация графики
    
    //создание кругов
    
    circle c1 = {15,7,5,cBLUE,X_FILL};
    circle c2 = {41,12,7,cRED,O_FILL};
    circle c3 = {65,18,4,cGREEN,MEDIUM_FILL};
    
    circ_draw(c1);
    circ_draw(c2);
    circ_draw(c3);
    
    set_cursor_pos(1,25);
    
    return 0;
    }


А вот код который находится в "msoftcon.h":

msoftcon.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  //msoftcon.h
//Объявления функций консольной графики от Lafore
//используются консольные функции Windows 
 
#ifndef _INC_WCONSOLE    //этот файл не должен включаться
#define _INC_WCONSOLE    //дважды в тот же исходный файл
 
#include <windows.h>     //для консольных функций Windows
#include <conio.h>       //для kbhit(), getche()
#include <math.h>        //для sin, cos
 
enum fstyle { SOLID_FILL, X_FILL,      O_FILL, 
              LIGHT_FILL, MEDIUM_FILL, DARK_FILL };
 
enum color {
   cBLACK=0,     cDARK_BLUE=1,  cDARK_GREEN=2, DARK_CYAN=3, 
   cDARK_RED=4,  cDARK_MAGENTA=5, cBROWN=6,  cLIGHT_GRAY=7,
   cDARK_GRAY=8, cBLUE=9,         cGREEN=10,     cCYAN=11, 
   cRED=12,      cMAGENTA=13,     cYELLOW=14,    cWHITE=15 };
//---------------------------------------------------------
void init_graphics();
void set_color(color fg, color bg = cBLACK);
void set_cursor_pos(int x, int y);
void clear_screen();
void wait(int milliseconds);
void clear_line();
void draw_rectangle(int left, int top, int right, int bottom);                    
void draw_circle(int x, int y, int rad);
void draw_line(int x1, int y1, int x2, int y2);
void draw_pyramid(int x1, int y1, int height);
void set_fill_style(fstyle);
#endif /* _INC_WCONSOLE */
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2013, 09:51
Ответы с готовыми решениями:

Лафоре Не компилируется пример
Вот текст кода#include &quot;msoftcon.h&quot; class Shape { protected: int xCo, yCo; color fillcolor; fstyle fillstyle; ...

Функция инициализации консольной графики от Лафоре
Доброго времени суток. Пытаюсь использовать( только обучения ради ) и изменить библиотеку консольной графики от Лафоре. Среди прочих...

Не компилируется задача из Лафоре
Помогите пожалуйста разбораться почему компилятор ругается: 1&gt;L.obj : error LNK2019: unresolved external symbol &quot;void __cdecl...

51
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
04.11.2015, 12:20
Студворк — интернет-сервис помощи студентам
alsav22, добрый день, читаю туже книгу и остановился на этом же примере. Дело в том ,что работаю на линукс. Вопрос чем заменить #include "msoftcon.h ?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.11.2015, 12:22
Просто заменить не получится. Надо переделывать.
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
04.11.2015, 12:22
reisal78, Вы предлагаете не читать эту книгу ?
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
04.11.2015, 13:33
sergei60, новичку читать однозначно =)
0
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
04.11.2015, 14:12
nmcf, а какую библиотеку посоветуете для линукс? что бы код переделать
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
04.11.2015, 14:24
Цитата Сообщение от sergei60 Посмотреть сообщение
Вопрос чем заменить #include "msoftcon.h ?
Попробуйте здесь спросить: https://www.cyberforum.ru/cpp-linux/
1
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
04.11.2015, 16:00
Цитата Сообщение от sergei60 Посмотреть сообщение
а какую библиотеку посоветуете для линукс?
Вроде бы ncurses.h там есть для управления цветами и произвольного перемещения курсора в консольном окне.
1
 Аватар для Fatmarmelad
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,614
21.05.2016, 21:05
Добрый день!
Где можно скачать файл msoftcon.h? Скиньте, пожалуйста, ссылку.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
21.05.2016, 23:12
Цитата Сообщение от Fatmarmelad Посмотреть сообщение
Где можно скачать файл msoftcon.h?
В первом посте.
0
 Аватар для Fatmarmelad
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,614
22.05.2016, 00:48
Вы имеете ввиду код? Подскажите, как можно сделать из кода файл?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
22.05.2016, 01:25
Цитата Сообщение от Fatmarmelad Посмотреть сообщение
Подскажите, как можно сделать из кода файл?
Добавь в проект пустой .h файл с нужным именем, скопируй туда код.
И тему почитай, там ещё .cpp файл нужен, код его в теме тоже есть.
0
0 / 0 / 0
Регистрация: 18.10.2016
Сообщений: 1
18.10.2016, 11:39
Warlus, да. Спасибо. Именно это и помогло.
0
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 1
05.02.2017, 17:04
Доброго всем времени суток!
застопорился на этой же задаче, создал заголовочный файл в проекте, кинул туда выше написанный код msoftcon.h, но это не помогло( не хотит компилироваться никак, требует newline
чего делать?
З.Ы. работаю в VS 2015
0
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 10
24.03.2017, 18:22
Цитата Сообщение от Warlus Посмотреть сообщение
Нужно "CONOUT$" заменить на L"CONOUT$". Тогда будет всё работать. Ну лично у меня так.
Спасибо большое вам за подсказку. На VS2017 мучился, пока не эту тему. Плюс, надо ещё добавить #include "stdafx.h" в msoftcon.h, msoftcon.cpp и circstrc.cpp.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
24.03.2017, 21:42
Цитата Сообщение от Palmirov Посмотреть сообщение
Плюс, надо ещё добавить #include "stdafx.h"
не нужно.
0
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 10
25.03.2017, 00:07
Разве компилятор не будет ругаться на отсутствие этой строки?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
25.03.2017, 00:43
Цитата Сообщение от Palmirov Посмотреть сообщение
Разве компилятор не будет ругаться на отсутствие этой строки?
Это предкомпилированный заголовок. При создании проекта можно убрать галку с "использовать предкомпилированный заголовок", или создавать пустой проект.
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
25.03.2017, 00:46
Цитата Сообщение от Palmirov Посмотреть сообщение
Разве компилятор не будет ругаться на отсутствие этой строки?
прежде, чем кому то что-то советовать,
и задавать мне вопросы,
вы сделаете следующие:

1.
перестаните программировать методом научного тыка.

2.
ознакомитесь с темой "директива препроцессора #include"

3.
ознакомитесь с темой "предварительно скомпилированный заголовок".

4.
особенное внимание вы уделите предварительно скомпилированным заголовкам,
для компиляторов вижуал студии.

5.
вы ответите себе на вопросы:
- что это?
- зачем нужны предварительно скомпилированные заголовки?
- как правильно ими пользоваться?

6.
и только после выполнения всех этих шагов,
если ещё останутся вопросы,
только тогда вы создадите на этом форуме специальную тему.

7.
гугл/яндекс - ваши лучшие друзья.

8.
PROFIT???!!!
1
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 10
25.03.2017, 13:56
Вопросов нет. Спасибо.
0
 Аватар для Fatmarmelad
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,614
25.03.2017, 21:59
Доброго времени суток!
Я только учусь. Тоже читаю Лафоре. Вроде создал заголовочный файл. А где создаётся само программа из книги. Нужно ли создавать элемент в одной из папок (на рисунке)?
Спасибо за помощь!
Миниатюры
Р. Лафоре "ООП в C++". Не компилируется пример с консольной графикой  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2017, 21:59

Пособие Р.Лафоре. ООП в С++
Отличная книга(для начала), но вот задания в ней ужасно запутаны. Может кто-нибудь объяснить,есть ли смысл разбираться в различных...

Пример из книги Лафоре
В третьей главе книги Лафоре по с++ есть пример использующий функцию getche(): #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Непонятен пример из Лафоре
В 7й Главе Никак не могу понять как реализован выход из цикла #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; ...

Пример из книги Лафоре
Здравствуйте! Не могли бы подсказать, по какой причине в листинге ниже переменные должны быть обязательно быть изначально изначально с...

Решения упражнений [Книга Р.Лафоре "ООП в С++]
//Глава 4. Структуры. Перечисления. //Упражнение 6 #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int main() {...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru