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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.82
Master_Yi
12 / 9 / 1
Регистрация: 22.12.2013
Сообщений: 289
23.02.2014, 13:57     Не подключается graphics.h в Visual Studio #1
В общем задача сделать график по формуле. Я работаю с 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;
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
23.02.2014, 14:50     Не подключается graphics.h в Visual Studio #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();
    
}
Master_Yi
12 / 9 / 1
Регистрация: 22.12.2013
Сообщений: 289
23.02.2014, 15:05  [ТС]     Не подключается graphics.h в Visual Studio #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.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
23.02.2014, 15:09     Не подключается graphics.h в Visual Studio #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();
    
}
Master_Yi
12 / 9 / 1
Регистрация: 22.12.2013
Сообщений: 289
23.02.2014, 15:44  [ТС]     Не подключается graphics.h в Visual Studio #5
zss, В итоге выходит такой график:
Не подключается graphics.h в Visual Studio
Почему он повторяется по кругу? И как задать другую формулу для него? У меня вообще вот такая: Х22<=2(|X|+|Y|)
Я не понял как вообще работает ваша формула:
C++
1
2
  x=R*cos(fi);
  y=R*sin(fi);
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
23.02.2014, 15:59     Не подключается graphics.h в Visual Studio #6
Я взял для примера рисование прямых, выходящих из центра окна и находящихся пол углом fi к горизонтали.
x=R*cos(fi); - проекция прямой на ось x
y=R*sin(fi); - проекция на ось y.
Master_Yi
12 / 9 / 1
Регистрация: 22.12.2013
Сообщений: 289
24.02.2014, 01:28  [ТС]     Не подключается graphics.h в Visual Studio #7
Огромное спасибо! Нигде на просторах интернета не мог ничего найти а тут за пару постов узнал все что нужно! Скорее всего я не знал что искать тем не менее огромное спасибо!
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.02.2014, 04:30     Не подключается graphics.h в Visual Studio #8
Цитата Сообщение от Master_Yi Посмотреть сообщение
Вот и постал вопрос: как сделать что бы этот модуль заработал или как/чем его заменить?
подчеркивает запятую после 50, что это может быть?
Gennadi
1 / 1 / 0
Регистрация: 06.07.2015
Сообщений: 5
06.07.2015, 01:22     Не подключается graphics.h в Visual Studio #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 ==========
Помогите, ПОЖАЛУЙСТА! Что не так?
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
06.07.2015, 04:35     Не подключается graphics.h в Visual Studio #10
В настройках проекта уберите использование уникода.
Меню
Проект->Свойства->Свойства конфигурации->Набор знаков->Не задано.

И разбирайтесь в том, что такое Win Api и как получить контекст устройства рисования.
Все объявления находятся в windows.h
Вывод красной точки (x,y):
C++
1
SetPixel(hdc,x,y,RGB(255,0,0));
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2015, 05:24     Не подключается graphics.h в Visual Studio
Еще ссылки по теме:

C++ Где скачать Borland С++ с поддержкой graphics.h. Уроки по библеотеке graphics.h
Visual Studio 10. Что и когда подключается в проекте? C++
C++ Не подключается <graphics.h>

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

Или воспользуйтесь поиском по форуму:
Gennadi
1 / 1 / 0
Регистрация: 06.07.2015
Сообщений: 5
06.07.2015, 05:24     Не подключается graphics.h в Visual Studio #11
Большое спасибо! А я надеялся, что в таком мощнейшем языке "рисовать" как-то по-проще :-) Что же, будем разбираться. Ещё раз спасибо
Yandex
Объявления
06.07.2015, 05:24     Не подключается graphics.h в Visual Studio
Ответ Создать тему
Опции темы

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