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

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)