Мне нужно использовать графику 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 и хотя он может привести к конфликту, поэтому я просто удалил его. Без изменений 🙁
Я думаю, что я решил это! Это было на самом деле проблема с графикой.
Когда я скопировал все файлы 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
);
Теперь это работает !!!
Других решений пока нет …