我在创建使用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;
}
答案 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>
并选择类似打开文件的内容,这将在新的代码块“选项卡”中打开标题,右键单击选项卡,单击打开包含文件夹。多数民众赞成。