5

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

但是当我尝试使用它时,会弹出另一个代码,并在第 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;
}
4

2 回答 2

12

我不知道它是否适合这个论坛,但我只是想告诉(世界)一些事情。我最近决定尝试 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|error: 'int right' 之前在这里声明|

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

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

//原始声明。请注意,有两个“正确”变量

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
    );
于 2015-02-22T14:21:39.387 回答
1

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

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

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

于 2017-01-12T06:06:52.920 回答