使用winbgim库重新定义int right错误

时间:2014-09-17 13:56:00

标签: c++ user-interface error-handling codeblocks winbgi

我在创建使用winbgim.h头文件的程序时遇到问题。这是一个简单的程序,只需一个简单的圆圈。我目前正在学习winbgim和graphics.h库。我下载了它,我下载了库并将其包含在this之后的代码块中,并且它可以正常工作。

但是当我尝试使用它时,会弹出另一个代码并在第302行显示"错误:重新定义" int right"。我在Codeblocks IDE中的控制台文件中进行此操作。

有人可以帮忙吗?这是我的代码:

#include <iostream>
#include <winbgim.h>
#include <cstdlib>

using namespace std;

int main()
{
   int gdriver = 9;
   int gmode = 2;
   initgraph(&gdriver,&gmode, "");
   setbkcolor(WHITE);
   setcolor(BLACK);
   cleardevice();
   circle(320,240,180);
   getch();
   closegraph();
   return 0;
}

2 个答案:

答案 0 :(得分:7)

我不知道它是否适合这个论坛,但我只想告诉(世界)一些东西。我最近决定试用WinBGIm库,所以我下载了软件包,在设置了所有编译器和链接器设置后,运行了我的简单&#34; Hello World&#34;码。但是我从编译器(MinGW,CodeBlocks IDE)收到以下消息。

  

d:\码块\ mingw的\ BIN .. \ lib中\ GCC \的mingw32 \ 4.4.1 ........ \包括\ graphics.h中| 302 |错误:   重新定义&#39; int right&#39; |

     

d:\码块\ mingw的\ BIN .. \ lib中\ GCC \的mingw32 \ 4.4.1 ........ \包括\ graphics.h中| 302 |错误:   &#39; int right&#39;此前在这里宣布|

     

|| ===构建完成:2个错误,   0警告=== |

在搜索了问题之后,我什么也没发现(如果你不计算使用CodeBlocks-EP作为解决方案的建议)。 当我看看头文件时,我发现了问题(是啊!!!) 问题出在函数printimage上。 原始声明是

//原始声明。请注意,有两个&#34;右&#34; 变量

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
    );

所以我做的是,我只是改变了一个&#34;对&#34; (后者的前一个)变量为&#34; top&#34;。那就是它。

//The corrected code
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 top=0, int right=INT_MAX, int bottom=INT_MAX,
    bool active=true, HWND hwnd=NULL
    );

答案 1 :(得分:1)

我做了与@Puneet建议相同的事情,只需更改一个名为“right”的变量的名称。

我要添加的内容是您无法更改代码块中的名称(至少我不能这样做,更改被忽略)。所以我建议你保存你的代码文件,关闭IDE,用文本编辑器打开“graphics.h”文件,更改名称,保存,然后你就可以了。

您可以通过打开新的代码块项目找到MinGW目录,右键单击<iostream>并选择类似打开文件的内容,这将在新的代码块“选项卡”中打开标题,右键单击选项卡,单击打开包含文件夹。多数民众赞成。