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

Error LNK2019 + упрощенный вариант консольной графики - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.73
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.08.2009, 03:49     Error LNK2019 + упрощенный вариант консольной графики #1
Программка из книги Лафоре "ОПП в С++", Глава 10.
Закинул я msoftcon.h и msoftcon.срр в папку к исходникам..
horse.cpp
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <ctime>
#include <cstdlib>
#include "msoftcon.h"
const int CPF = 5;
const int maxHorses = 7;
//////////////////////////////////////////////////////////////////////////
class track;
//////////////////////////////////////////////////////////////////////////
class horse
{
private:
    const track* ptrTrack;
    const int horse_number;
    float finish_time;
    float distance_run;
public:
    horse(const int n, const track* ptrT):
      horse_number(n),
      ptrTrack(ptrT),
      distance_run(0.0)
    {}
    ~horse()
    {}
    void display_horse(const float elapsed_time);
};
//////////////////////////////////////////////////////////////////////////
class track
{
private:
    horse* hArray[maxHorses];
    int total_horses;
    int horse_count;
    const float track_length;
    float elapsed_time;
public:
    track(float lenTr, int nH);
    ~track();
    void display_track();
    void run();
    float get_track_len() const;
};
//////////////////////////////////////////////////////////////////////////
void horse::display_horse(const float elapsed_time)
{
    set_cursor_pos(1 + int(distance_run*CPF),2 + horse_number*2);
    set_color(static_cast<color>(cBLUE + horse_number));
    char horse_char = '0' + static_cast<char>(horse_number);
    putch(' ');
    putch('\xDB');
    putch(horse_char);
    putch('\xDB');
    if(distance_run < ptrTrack->get_track_len() + 1.0/CPF)
    {
        if(rand()%3)
            distance_run = 0.2F;
        finish_time = elapsed_time;
    }
    else
    {
        int mins = int(finish_time)/60;
        int secs = int(finish_time) - mins*60;
        cout << "Время = " << mins << ":" << secs; 
    }
}
//////////////////////////////////////////////////////////////////////////
track::track(float lenTr, int nH):
    track_length(lenTr),
    total_horses(nH),
    horse_count(0),
    elapsed_time(0.0)
{
    init_graphics();
    total_horses = (total_horses > maxHorses) ? maxHorses : total_horses;
    for(int j = 0; j < total_horses;j++)
        hArray[j] = new horse(horse_count++,this);
 
    time_t aTime;
    srand(static_cast<unsigned>(time(&aTime)));
    display_track();
}
//////////////////////////////////////////////////////////////////////////
track::~track()
{
    for(int j = 0; j < total_horses;j++)
        delete hArray[j];
}
//////////////////////////////////////////////////////////////////////////
void track::display_track()
{
    clear_screen();
 
    for(int f = 0; f <= track_length;f++)
        for(int r = 1; r <= track_length*2 + 1;r++)
        {
            set_cursor_pos(f * CPF + 5, r);
            if(f == 0 || f == track_length)
                cout << '\xDB';
            else 
                cout << '\xB3';
        }
}
//////////////////////////////////////////////////////////////////////////
void track::run()
{
    while(!kbhit())
    {
        elapsed_time += 1.75;
        for(int j = 0; j < total_horses;j++)
            hArray[j]->display_horse(elapsed_time);
        wait(500);
    }
    getch();
    cout << endl;
}
//////////////////////////////////////////////////////////////////////////
float track::get_track_len() const
{
    return track_length;
}
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    float length;
    int total;
    cout << "\nВведите длину дистанции(от 1 до 12): ";
    cin >> length;
    cout << "\nВведите количество лошадей(от 1 до 7): ";
    cin >> total;
    track theTrack(length,total);
    theTrack.run();
    getchar();
    return 0;
}

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 */

msoftcon.cpp
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
//msoftcon.cpp
//подпрограммы доступа к консольным функциям Windows 
 
//компилятор должен знать, где искать этот файл
//в MCV++, /Tools/Options/Directories/Include/type путь
 
#include "msoftcon.h"
HANDLE hConsole;         //поддержка консольного режима 
char fill_char;          //символ заполнения
//---------------------------------------------------------
void init_graphics()
   {
   COORD console_size = {80, 25};
   //открыть канал ввода/вывода на консоль
   hConsole = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ,
                   FILE_SHARE_READ | FILE_SHARE_WRITE,
                   0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
   //установить размер экрана 80x25 
   SetConsoleScreenBufferSize(hConsole, console_size);
   //текст белым по черному 
   SetConsoleTextAttribute( hConsole, (WORD)((0 << 4) | 15) );
 
   fill_char = '\xDB';  //заполнение по умолчанию
   clear_screen();
   }
//---------------------------------------------------------
void set_color(color foreground, color background)
   {
   SetConsoleTextAttribute( hConsole, 
                        (WORD)((background << 4) | foreground) );
   }  //конец setcolor()
 
/* 0  Черный          8  Темно-серый
   1  Темно-синий     9  Синий
   2  Темно-зеленый   10 Зеленый
   3  Темно-голубой   11 Алый
   4  Темно-красный   12 красный
   5  Темно-алый      13 алый
   6  Коричневый      14 Желтый
   7  Светло-серый    15 Белый
*/
//---------------------------------------------------------
void set_cursor_pos(int x, int y)
   {
   COORD cursor_pos;            //Начало в верхнем левом 
   cursor_pos.X = x - 1;        //Windows начинает с (0, 0)
   cursor_pos.Y = y - 1;        //мы начнем с (1, 1)
   SetConsoleCursorPosition(hConsole, cursor_pos);
   }
//---------------------------------------------------------
void clear_screen()
   {
   set_cursor_pos(1, 25);
   for(int j=0; j<25; j++)
      putch('\n');
   set_cursor_pos(1, 1);
   }
//---------------------------------------------------------
void wait(int milliseconds)
   {
   Sleep(milliseconds);
   }
//---------------------------------------------------------
void clear_line()                 //очистка до конца строки
   {                              //80 пробелов
   //.....1234567890123456789012345678901234567890
   //.....0........1.........2.........3.........4 
   cputs("                                        ");
   cputs("                                        ");
   }
//---------------------------------------------------------
void draw_rectangle(int left, int top, int right, int bottom) 
   {
   char temp[80];
   int width = right - left + 1;
 
   for(int j=0; j<width; j++)      //строка квадратов
      temp[j] = fill_char;   
   temp[j] = 0;                    //null
 
   for(int y=top; y<=bottom; y++)  //строковый стек 
      {
      set_cursor_pos(left, y);
      cputs(temp);
      }
   }
//---------------------------------------------------------
void draw_circle(int xC, int yC, int radius)
   {
   double theta, increment, xF, pi=3.14159;
   int x, xN, yN;
 
   increment = 0.8 / static_cast<double>(radius);
   for(theta=0;theta<=pi/2;theta+=increment)//1/4 
                                            //окружности
      {
      xF = radius * cos(theta);  
      xN = static_cast<int>(xF * 2 / 1); //пикселы не
                                         //квадратные :-(
      yN = static_cast<int>(radius * sin(theta) + 0.5);
      x = xC-xN;
      while(x <= xC+xN) //заполнить две горизонтальные линии
         {              //по одной на каждую ? окружности
         set_cursor_pos(x, yC-yN); putch(fill_char); //верх
         set_cursor_pos(x++,yC+yN); putch(fill_char); //низ
         }
      }  //конец for
   }
//---------------------------------------------------------
void draw_line(int x1, int y1, int x2, int y2)
   {
 
   int w, z, t, w1, w2, z1, z2;
   double xDelta=x1-x2, yDelta=y1-y2, slope;
   bool isMoreHoriz;
 
   if( fabs(xDelta) > fabs(yDelta) ) //еще горизонтальная
      {
      isMoreHoriz = true;
      slope = yDelta / xDelta;
      w1=x1; z1=y1; w2=x2, z2=y2;    //w=x, z=y 
      }
   else                              //еще вертикальная
      {
      isMoreHoriz = false;
      slope = xDelta / yDelta;
      w1=y1; z1=x1; w2=y2, z2=x2;    //w=y, z=x
      }
 
   if(w1 > w2)                       //если за w
      {
      t=w1; w1=w2; w2=t;             //   заменить (w1,z1)
      t=z1; z1=z2; z2=t;             //   на (w2,z2)
      }
   for(w=w1; w<=w2; w++)            
      {
      z = static_cast<int>(z1 + slope * (w-w1));
      if( !(w==80 && z==25) )  //убрать прокрутку на 80,25
         {
         if(isMoreHoriz)
            set_cursor_pos(w, z);
         else
            set_cursor_pos(z, w);
         putch(fill_char);
         }
      }
   }
//---------------------------------------------------------
void draw_pyramid(int x1, int y1, int height)
   {
   int x, y;
   for(y=y1; y<y1+height; y++)
      {
      int incr = y - y1;
      for(x=x1-incr; x<=x1+incr; x++)
         {
         set_cursor_pos(x, y);
         putch(fill_char);
         }
      }
   }
//---------------------------------------------------------
void set_fill_style(fstyle fs)
   {
   switch(fs)
      {
      case SOLID_FILL:  fill_char = '\xDB'; break;
      case DARK_FILL:   fill_char = '\xB0'; break;
      case MEDIUM_FILL: fill_char = '\xB1'; break;
      case LIGHT_FILL:  fill_char = '\xB2'; break;
      case X_FILL:      fill_char = 'X';    break;
      case O_FILL:      fill_char = 'O';    break;
      }
   }
//---------------------------------------------------------

Ошибки
Код
1>c:\myprojects\horse\horse\horse.cpp(54) : warning C4996: 'putch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _putch. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\conio.h(152): см. объявление 'putch'
1>c:\myprojects\horse\horse\horse.cpp(55) : warning C4996: 'putch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _putch. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\conio.h(152): см. объявление 'putch'
1>c:\myprojects\horse\horse\horse.cpp(56) : warning C4996: 'putch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _putch. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\conio.h(152): см. объявление 'putch'
1>c:\myprojects\horse\horse\horse.cpp(57) : warning C4996: 'putch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _putch. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\conio.h(152): см. объявление 'putch'
1>c:\myprojects\horse\horse\horse.cpp(111) : warning C4996: 'kbhit': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _kbhit. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\conio.h(147): см. объявление 'kbhit'
1>c:\myprojects\horse\horse\horse.cpp(118) : warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1>        c:\program files\microsoft visual studio 9.0\vc\include\conio.h(145): см. объявление 'getch'
1>Компоновка...
1>horse.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl set_color(enum color,enum color)" (?set_color@@YAXW4color@@0@Z) в функции "public: void __thiscall horse::display_horse(float)" (?display_horse@horse@@QAEXM@Z)
1>horse.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl set_cursor_pos(int,int)" (?set_cursor_pos@@YAXHH@Z) в функции "public: void __thiscall horse::display_horse(float)" (?display_horse@horse@@QAEXM@Z)
1>horse.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl init_graphics(void)" (?init_graphics@@YAXXZ) в функции "public: __thiscall track::track(float,int)" (??0track@@QAE@MH@Z)
1>horse.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl clear_screen(void)" (?clear_screen@@YAXXZ) в функции "public: void __thiscall track::display_track(void)" (?display_track@track@@QAEXXZ)
1>horse.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl wait(int)" (?wait@@YAXH@Z) в функции "public: void __thiscall track::run(void)" (?run@track@@QAEXXZ)

Варинги, я понимаю, от conio.h, а как проблему с error LNK2019 подскажите решить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2009, 03:49     Error LNK2019 + упрощенный вариант консольной графики
Посмотрите здесь:

C++ Существует ли библиотека для консольной графики в C++?
C++ Очистка консольной графики
C++ error LNK2019
C++ Error LNK2019
Error LNK2019 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.08.2009, 08:07     Error LNK2019 + упрощенный вариант консольной графики #2
C++
1
2
3
4
#ifndef _INC_WCONSOLE    //этот файл не должен включаться
#define _INC_WCONSOLE    //дважды в тот же исходный файл
...
#endif /* _INC_WCONSOLE */
C++
1
2
3
4
//#ifndef _INC_WCONSOLE    //этот файл не должен включаться
//#define _INC_WCONSOLE    //дважды в тот же исходный файл
...
//#endif /* _INC_WCONSOLE */
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.08.2009, 10:44  [ТС]     Error LNK2019 + упрощенный вариант консольной графики #3
accept, спс, что откликнулся, но, что с этим делать..?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.08.2009, 10:58     Error LNK2019 + упрощенный вариант консольной графики #4
просто закомментируй строки условного включения
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.08.2009, 11:00     Error LNK2019 + упрощенный вариант консольной графики #5
insolent, MSVC 2008 SP1. всё билдится без проблем.
единственный error был тут:
C++
1
2
3
4
5
6
void draw_rectangle(int left, int top, int right, int bottom) {
...
for(int j=0; j<width; j++)      //строка квадратов
      temp[j] = fill_char;   
   temp[j] = 0;                    //!!! j - undeclared identifier
...
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.08.2009, 11:06  [ТС]     Error LNK2019 + упрощенный вариант консольной графики #6
accept, все осталось по старому..(
zim22, у меня тоже студия 2008, но без SP1..
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.08.2009, 11:14     Error LNK2019 + упрощенный вариант консольной графики #7
закинул msoftcon.cpp в папку, надо чтобы он был в проекте, чтобы компиляцию проходил
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.08.2009, 11:14     Error LNK2019 + упрощенный вариант консольной графики #8
Цитата Сообщение от insolent Посмотреть сообщение
у меня тоже студия 2008, но без SP1..
sp1 тут не причём.
попробуй сбилдить мой solution
Вложения
Тип файла: rar proj.rar (9.8 Кб, 95 просмотров)
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.08.2009, 11:36  [ТС]     Error LNK2019 + упрощенный вариант консольной графики #9
Цитата Сообщение от zim22 Посмотреть сообщение
попробуй сбилдить мой solution
с твоим все Ок,
теперь
такое
Код
c:\myprojects\horse\horse\msoftcon.cpp(7) : warning C4627: #include "msoftcon.h": пропущен при поиске использования предкомпилированного заголовка
1>        Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>c:\myprojects\horse\horse\msoftcon.cpp(178) : fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
с моим
Может, я как-то не так подключаю файлы к проекту?
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.08.2009, 11:40     Error LNK2019 + упрощенный вариант консольной графики #10
Цитата Сообщение от insolent Посмотреть сообщение
Может, я как-то не так подключаю файлы к проекту?
отключи precompiled headers:

Properties-C/C++-Precompiled headers-Create|Use Precompiled Header: Not using Precompiled Headers
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.08.2009, 11:44     Error LNK2019 + упрощенный вариант консольной графики #11
в dev-cpp пришлось

решить с j
cputs'ы заменить на puts'ы
включить для puts'ов <cstdio>
хедеры без изменений, убрал только stdafx.h
всё
insolent
 Аватар для insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.08.2009, 11:53  [ТС]     Error LNK2019 + упрощенный вариант консольной графики #12
у меня теперь
такое
Код
1>c:\myprojects\horse\horse\msoftcon.cpp(18) : error C2664: CreateFileW: невозможно преобразовать параметр 1 из 'const char [8]' в 'LPCWSTR'
1>        Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
такое.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
11.08.2009, 11:56     Error LNK2019 + упрощенный вариант консольной графики #13
Цитата Сообщение от insolent Посмотреть сообщение
у меня теперь такое
отключи поддержку Unicode
Propetries-Configuration Properties-General-Character Set:Use Multi-Byte Character Set
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 161
21.09.2012, 21:13     Error LNK2019 + упрощенный вариант консольной графики #14
Цитата Сообщение от zim22 Посмотреть сообщение
отключи precompiled headers:

Properties-C/C++-Precompiled headers-Create|Use Precompiled Header: Not using Precompiled Headers
У меня русский Microsoft Visual C++ 2010 Express. Не могу никак найти этот пункт в русской версии.
Прооблема такая же как у топикстартера.

http://s56.***********/i153/1209/1c/4fb308a82c68.png

Еще не совсем понимаю это: Что именно надо закомментировать, надо ли и для чего?
C#
1
2
3
4
5
6
//msoftcon.h
//Объявления функций консольной графики от Lafore
//используются консольные функции Windows 
 
#ifndef _INC_WCONSOLE    // этот файл не должен включаться
#define _INC_WCONSOLE    //дважды в тот же исходный файл
И тут странное:
http://s019.***********/i620/1209/18/594012b24804.png

Добавлено через 46 минут
Проект в данный момент выглядит так:
http://s12.***********/i185/1209/11/dd7ca3597fba.png

.cpp и .h кинул в папку с проектом. После чего слевой стороны пкм по "заголовочные файлы/файлы исходного кода >> добавить >> существующий элемент.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.09.2012, 21:15     Error LNK2019 + упрощенный вариант консольной графики #15
на счет таких вот вызовов:
C++
1
2
3
 hConsole = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ,
                   FILE_SHARE_READ | FILE_SHARE_WRITE,
                   0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
если явно используются ASCII (или ANSI, хз что правильно) строка, то и функцию желательно вызывать явно правильную. т.е.
CreateFileA ну или хотябы знать, что есть CreateFileA и CreateFileW и куча других функций с такими же суффиксами. Или же всю строку желательно оборавичать в спец макросы: TEXT("dsfrs"), _L("dsfs") и т.п.
А то проект может быть заточен под unicode, а тут раз, и отрубили поддержку ради компилябильности, не вдаваясь в детали.
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 161
21.09.2012, 21:23     Error LNK2019 + упрощенный вариант консольной графики #16
Спасибо за разъяснение!

Теперь остались траблы только по cpp
[img]http://s017.***********/i441/1209/c6/8d9f39e5edf6.png[/img]
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.09.2012, 21:26     Error LNK2019 + упрощенный вариант консольной графики #17
блин. ну по русски написано же, возможно вы забыли добавить stdafx. добавте и посмотрите что будет. ошибки выводятся не просто так, чтобы отразить факт ошибки. типа есть ошибка, сами догадайтесь где и почему. есть описание и в данном случае вполне ясное.
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 161
21.09.2012, 21:32     Error LNK2019 + упрощенный вариант консольной графики #18
Так ведь есть он у меня:

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
// Test_Project.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include "msoftcon.h"
using namespace std;
 
///////////////////////////////////////////////////////////////////////
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 ()
{
    system("chcp 1251 >nul");
 
    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;
}
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.09.2012, 21:35     Error LNK2019 + упрощенный вариант консольной графики #19
ругается на файл msoftcon.cpp
в описании ошибки это тоже есть. смотрите внимательнее.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2012, 21:53     Error LNK2019 + упрощенный вариант консольной графики
Еще ссылки по теме:

C++ Функция инициализации консольной графики от Лафоре
C++ Error LNK1120, Error LNK2019
C++ Error LNK2019 и fatal error LNK1120

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

Или воспользуйтесь поиском по форуму:
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 161
21.09.2012, 21:53     Error LNK2019 + упрощенный вариант консольной графики #20
Добавил этот заголовочный в сpp, пропали ошибки и предупреждения. Правда на выходе ад и содомия:

[img]http://s016.***********/i336/1209/78/ec1cae5186fa.png[/img]
Листинг что скидывал выше - пример из книги. Хотя, после трех ошибок в cpp и h под этот пример, прилагаемых к книге, я не удивляюсь. =)

[img]http://s019.***********/i629/1209/1d/6b5148e5bec8.jpg[/img]
Yandex
Объявления
21.09.2012, 21:53     Error LNK2019 + упрощенный вариант консольной графики
Ответ Создать тему
Опции темы

Текущее время: 12:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru