【问题标题】:Redefinition of int right error using winbgim library使用 winbgim 库重新定义 int 正确错误
【发布时间】:2026-01-08 22:45:01
【问题描述】:

我在制作使用 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;
}

【问题讨论】:

    标签: c++ user-interface codeblocks bgi winbgi


    【解决方案1】:

    我不知道它是否适合这个论坛,但我只是想告诉(世界)一些事情。我最近决定尝试 WinBGIm 库,因此我下载了该软件包,并在设置了所有编译器和链接器设置后,运行了我的简单“Hello World”代码。但我从我的编译器(MinGW、CodeBlocks IDE)收到以下消息。

    d:\codeblocks\mingw\bin..\lib\gcc\mingw32\4.4.1........\include\graphics.h|302|错误: 重新定义'int right'|

    d:\codeblocks\mingw\bin..\lib\gcc\mingw32\4.4.1........\include\graphics.h|302|错误: 'int right' 之前在这里声明|

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

    在谷歌搜索问题后,我一无所获(如果您不计算使用 CodeBlocks-EP 作为解决方案的建议)。 当我查看头文件时,我发现了问题(是的!!!) 问题出在函数 printimage 上。 原来的声明是

    //原来的声明。注意这里有两个"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
        );
    

    所以我所做的是,我只是将“右”(后来的前一个)变量之一更改为“顶部”。就是这样。

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

    【讨论】:

    • 这真的解决了我的问题。我不是这么看的。
    【解决方案2】:

    我按照@Puneet 的建议做了同样的事情,只是更改了名为“right”的变量之一的名称。

    我要补充的一点是您不能在代码块中更改名称(至少我不能这样做,更改被忽略了)。所以我建议你保存你的代码文件,关闭IDE,然后用文本编辑器打开“graphics.h”文件,更改名称,保存,一切就绪。

    你可以通过打开一个新的代码块项目找到你的MinGW目录,右键单击&lt;iostream&gt;并选择类似打开文件的东西,这将在一个新的代码块“选项卡”中打开标题,右键单击选项卡并单击打开包含文件夹。就是这样。

    【讨论】: