更新的wxDevCpp中的BGI不起作用

时间:2014-04-06 05:23:13

标签: c++ bgi winbgi

我需要在我的程序中使用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 个答案:

答案 0 :(得分:0)

我想我解决了!这实际上是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 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=INT_MAX, int bottom=INT_MAX,
    bool active=true, HWND hwnd=NULL
    );

现在它有效!!!