Ошибка CodeBlocks в графической библиотеке

Я выполнил следующий код в кодовых блоках IDE:

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "C:\TC\BGI");
    line(100, 200, 150, 250);
    cout << "Hello world!" << endl;

    return 0;
}

и во время отладки мой код остановился на этом этапе в graphics.h

int left=0, int right=0, int right=INT_MAX, int bottom=INT_MAX,

Я включил библиотеку WinBGIm.


person Akash21795    schedule 29.08.2014    source источник


Ответы (3)


Похоже на проблему с инициализацией графического драйвера.

Каков результат следующего кода в вашей среде IDE?

#include <iostream>
#include <graphics.h>
using namespace std;

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "C:\\TC\\BGI");

    int errorcode = graphresult();
    if (errorcode != grOk)
    {
        cout << "Graphics error: " <<  grapherrormsg(errorcode) << endl;
        return 1;
    }

    line(100, 200, 150, 250);
    cout << "Hello world!" << endl;

    return 0;
}
person Amit    schedule 29.08.2014
comment
Я попытался выполнить этот код, и он дает ту же ошибку. - person Akash21795; 29.08.2014
comment
@ Akash21795: Можешь снова запустить программу. На этот раз заменить "C:\TC\BGI" на "C:\\TC\\BGI"? Убедитесь, что в пути "C:\TC" есть каталог BGI - person Amit; 29.08.2014
comment
Я попытался заменить путь C:\\TC\\BGI, и программа снова завершается в той же точке. Я уверен в пути. - person Akash21795; 29.08.2014

Вы устанавливаете right дважды в этой строке в graphics.h:

int right=0, int right=INT_MAX

Измените строку на эту:

int left=0, int top=0, int right=INT_MAX, int bottom=INT_MAX

person Reflect    schedule 23.05.2016

Вы должны исправить graphics.h следующим образом:

int left=0;
int top=0;
int right=INT_MAX;
int bottom=INT_MAX;
person noo    schedule 10.05.2015