Ade*_*vić 4 c++ error-handling user-interface codeblocks winbgi
我在制作使用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;
}
Run Code Online (Sandbox Code Playgroud)
小智 7
我不知道它是否适合这个论坛,但我只想告诉(世界)一些东西.我最近决定试用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个警告=== |
在用Google搜索了问题之后我什么都没发现(如果你不计算使用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
);
Run Code Online (Sandbox Code Playgroud)
所以我所做的就是,我只是将"正确"(后一个)变量中的一个变为"顶部".而已.
//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
);
Run Code Online (Sandbox Code Playgroud)