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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.82
Master_Yi
13 / 10 / 1
Регистрация: 22.12.2013
Сообщений: 368
#1

Не подключается graphics.h в Visual Studio - C++

23.02.2014, 13:57. Просмотров 9289. Ответов 10
Метки нет (Все метки)

В общем задача сделать график по формуле. Я работаю с Visual Studio и как только я ввел #include<graphics.h> - оно его сразу подчеркнуло и при построении ругалось:
"Cannot open include file: 'graphics.h': No such file or directory"
Вот и постал вопрос: как сделать что бы этот модуль заработал или как/чем его заменить?

Добавлено через 7 минут
И как тогда запустить следующий код?
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
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
 
int main()
{
    float x, y;
    
    int gdriver = DETECT, gmode;
    initgraph(&gdriver, &gmode, "");    
 
    x = -10; 
    moveto(x, x*x); 
 
    do
    {
        y = x*x; 
        lineto(x * 50 + getmaxx() / 2, getmaxy() / 2 - (y * 20));  
        x = x + 0.02;
    } while (x<10);
    getch();               
    closegraph();     
    return 0;
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 13:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не подключается graphics.h в Visual Studio (C++):

Добавить graphics.h в MS visual studio 2017 - C++
Не подскажите как добавить эту библиотеку? Весь день мучаюсь... На урок информатики задали сделать &quot;снеговика&quot; в c++ через эту...

Visual Studio 10. Что и когда подключается в проекте? - C++
Создавал файлы для классов двумя способами. 1) Просто создавал header и в нём хранились как описания функций, так и тела. 2) С помощью...

Не подключается <graphics.h> - C++
#include &lt;dos.h&gt; #include &lt;conio.h&gt; #include &lt;graphics.h&gt; main () { int n=...

Не подключается graphics.h - C++
При компиляции возникает ошибка, связанная с graphics.h. Подскажите, пожалуйста, как поступить? //P9-04.CPP - работа с классом...

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ? - C++
скажите а где найти среду 2006 года? или можно использовать 2015 год?

Visual Studio Team Foundation Serverl или Visual Studio Professional - C++
Visual Studio Team Foundation Server 2010 Кто пользовался Visual Studio Team Foundation Server 2010, и чем она отличаеться от Visual...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
23.02.2014, 14:50 #2
Консольное приложение - это тоже окно.
Поэтому с ним надо работать так:
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
#include <windows.h>
#include <conio.h>
void main()
{
    HWND hwnd;       
    char Title[1024];
    int iWidth = GetSystemMetrics(SM_CXSCREEN);  // разрешение экрана по горизонтали
    int iHeight = GetSystemMetrics(SM_CYSCREEN); // разрешение экрана по вертикали
    GetConsoleTitle(Title, 1024); // Узнаем имя окна
    // или GetModuleFileName(NULL,Title, sizeof(Title));
 
    hwnd=FindWindow(NULL, Title); // Узнаем hwnd окна
    HDC hdc=GetDC(hwnd);    // Получаем контекст для рисования
    HPEN p1,p2=CreatePen(PS_SOLID,2,RGB(255,0,0)); // Создаем красное перо
    p1=(HPEN)SelectObject(hdc,p2);  // Заносим красное перо в контекст рисования
        int x = -10; 
        MoveToEx(hdc,x, x*x,NULL); 
        do
        {
             int y = x*x; 
             LineTo(hdc,x * 50 + getmaxx() / 2, getmaxy() / 2 - (y * 20));  
             x = x + 0.02;
         } while (x<10);
    SelectObject(hdc,p1);   // Возвращаем старое перо
    ReleaseDC(hwnd,hdc);    // Освобождаем контекст рисования
    DeleteObject(p2);       // Удаляем созданное перо
    _getch();
    
}
1
Master_Yi
13 / 10 / 1
Регистрация: 22.12.2013
Сообщений: 368
23.02.2014, 15:05  [ТС] #3
zss, Спасибо. Но я никак не могу понять в чем проблема в этих строках:
C++
1
2
3
4
    GetConsoleTitle(Title, 1024); // Узнаем имя окна
    // или GetModuleFileName(NULL,Title, sizeof(Title));
 
    hwnd = FindWindow(NULL, Title); // Узнаем hwnd окна
Пишет:
'HWND FindWindowW(LPCWSTR,LPCWSTR)' : cannot convert argument 2 from 'int' to 'LPCWSTR'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

А Title подчеркивает и объясняет это так: Тип Char не поддерживает тип LPWSTR.
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
23.02.2014, 15:09 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
В настройках проекта уберите использование уникода.
Вот работающий вариант
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
#include <windows.h>
#include <conio.h>
#include <math.h>
void main()
{
    HWND hwnd;       
    char Title[1024];
    GetConsoleTitle(Title, 1024); // Узнаем имя окна
    hwnd=FindWindow(NULL, Title); // Узнаем hwnd окна
    RECT rc;
    GetClientRect(hwnd,&rc);
    int iWidth = rc.right;
    int iHeight = rc.bottom;
    HDC hdc=GetDC(hwnd);    // Получаем контекст для рисования
    HPEN p1,p2=CreatePen(PS_SOLID,2,RGB(255,0,0)); // Создаем красное перо
    p1=(HPEN)SelectObject(hdc,p2);  // Заносим красное перо в контекст рисования
    int x = 0,y=0,R=iWidth/2;
    double fi=0;
    do
    {
        x=R*cos(fi);
        y=R*sin(fi);
        MoveToEx(hdc,iWidth / 2, iHeight / 2,NULL); 
        LineTo(hdc,x + iWidth / 2, iHeight / 2 -y);  
        fi+=0.1;
    } while (fi<6.28);
    SelectObject(hdc,p1);   // Возвращаем старое перо
    ReleaseDC(hwnd,hdc);    // Освобождаем контекст рисования
    DeleteObject(p2);       // Удаляем созданное перо
    _getch();
    
}
2
Master_Yi
13 / 10 / 1
Регистрация: 22.12.2013
Сообщений: 368
23.02.2014, 15:44  [ТС] #5
zss, В итоге выходит такой график:
Не подключается graphics.h в Visual Studio
Почему он повторяется по кругу? И как задать другую формулу для него? У меня вообще вот такая: Х22<=2(|X|+|Y|)
Я не понял как вообще работает ваша формула:
C++
1
2
  x=R*cos(fi);
  y=R*sin(fi);
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
23.02.2014, 15:59 #6
Я взял для примера рисование прямых, выходящих из центра окна и находящихся пол углом fi к горизонтали.
x=R*cos(fi); - проекция прямой на ось x
y=R*sin(fi); - проекция на ось y.
2
Master_Yi
13 / 10 / 1
Регистрация: 22.12.2013
Сообщений: 368
24.02.2014, 01:28  [ТС] #7
Огромное спасибо! Нигде на просторах интернета не мог ничего найти а тут за пару постов узнал все что нужно! Скорее всего я не знал что искать тем не менее огромное спасибо!
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.02.2014, 04:30 #8
Цитата Сообщение от Master_Yi Посмотреть сообщение
Вот и постал вопрос: как сделать что бы этот модуль заработал или как/чем его заменить?
подчеркивает запятую после 50, что это может быть?
0
Gennadi
1 / 1 / 0
Регистрация: 06.07.2015
Сообщений: 5
06.07.2015, 01:22 #9
Сергей Сергеевич!
Никак не подключается графика! Не могу найти описания, для вывода обычной линии... да пусть даже ТОЧКИ в консоли. Вот натолкнулся на Ваш код, а Visual Studio 2013 выдаёт вот такое:
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\drgen\documents\visual studio 2013\projects\проектgen11\проектgen11\исходный код.cpp(9): error C2664: "HWND FindWindowW(LPCWSTR,LPCWSTR)": невозможно преобразовать аргумент 2 из "char [1024]" в "LPCWSTR"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>c:\users\drgen\documents\visual studio 2013\projects\проектgen11\проектgen11\исходный код.cpp(21): warning C4244: =: преобразование "double" в "int", возможна потеря данных
1>c:\users\drgen\documents\visual studio 2013\projects\проектgen11\проектgen11\исходный код.cpp(22): warning C4244: =: преобразование "double" в "int", возможна потеря данных
========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========
Помогите, ПОЖАЛУЙСТА! Что не так?
1
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
06.07.2015, 04:35 #10
В настройках проекта уберите использование уникода.
Меню
Проект->Свойства->Свойства конфигурации->Набор знаков->Не задано.

И разбирайтесь в том, что такое Win Api и как получить контекст устройства рисования.
Все объявления находятся в windows.h
Вывод красной точки (x,y):
C++
1
SetPixel(hdc,x,y,RGB(255,0,0));
2
Gennadi
1 / 1 / 0
Регистрация: 06.07.2015
Сообщений: 5
06.07.2015, 05:24 #11
Большое спасибо! А я надеялся, что в таком мощнейшем языке "рисовать" как-то по-проще :-) Что же, будем разбираться. Ещё раз спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2015, 05:24
Привет! Вот еще темы с ответами:

Какую среду программирования лучше выбрать для обучения языку C++ ? Visual Studio,Visual Basic или Visual C++? - C++
И напишите,чем рекомендуемая вами среда программирования лучше других? Насколько я понял из Википедии они все поддерживают язык...

Написать программу. Задания нужно выполнять на языке Visual C++ в среде Microsoft Visual Studio 2008 - C++
Можете написать программу? Задание по номером 3.24 (2 рисунок).

Перевод с RAD Studio в Visual studio - C++
Помогите пожалуйста, перевести код с одной среды разработки на другую, очень нужно. Вот код. #include &lt;vcl.h&gt; #pragma hdrstop ...

несовместимость visual c++ 6.0 и visual studio 2008 - C++
почему правильно написанная программа в visual c++ 6.0 не работает в visual studio 2008 , а именно #include &lt;iostream&gt; using namespace...


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

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

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