BGI в обновленном wxDevCpp не работает

Мне нужно использовать BGI-графику в моей программе, и она прекрасно работала в wxDevCpp 7.3. Но теперь я установил обновленную версию этой IDE 7.4, сделал все по инструкции http://www.cs.colorado.edu/~main/bgi/dev-c++/, как и раньше, но теперь, когда я пытаюсь скомпилировать любой простая программа вроде

#include <graphics.h>

int main( )
{
    initwindow(400, 300, "First Sample");
    circle(100, 50, 40);
    while (!kbhit( ))
    {
        delay(200);
    }
    return 0;
}

Я получаю несколько ошибок, говорящих, что

initwindow(), circle(), kbhit(), delay()

не были объявлены в объеме. Я понятия не имею, что делать. Изменения в обновленном wxDevCpp - это другая структура папок, но я скопировал файлы graphics.h и libbgi.a в несколько папок. Я не забыл добавить команды компоновщика, как сказано в инструкции, но это не работает. Кроме того, я нашел другой файл graphics.h, который поставляется вместе с установкой нового wxDevCpp и хотя он может привести к конфликту, поэтому я просто удалил его. Без изменений:(

1 ответ

Решение

Я думаю, что я решил это! На самом деле это была проблема с graphics.h Когда я скопировал весь graphics.h в свой.cpp, компилятор выдал ошибку, что int right было объявлено дважды в следующем коде:

void printimage(
    const char* title=NULL, 
    double width_inches=7, double border_left_inches=0.75, double border_top_inches=0.75,
    int left=0, int right=0, int right=INT_MAX, int bottom=INT_MAX,
    bool active=true, HWND hwnd=NULL
    );

Переопределение int правильно, так как это всего лишь прототип, я изменяю его на:

void printimage(
    const char* title=NULL, 
    double width_inches=7, double border_left_inches=0.75, double border_top_inches=0.75,
    int left=0, int right=0, int=INT_MAX, int bottom=INT_MAX,
    bool active=true, HWND hwnd=NULL
    );

Теперь это работает!!!

Другие вопросы по тегам