Переопределение int правильной ошибки с использованием библиотеки winbgim

У меня проблема с созданием программы, которая использует заголовочный файл winbgim.h. Это простая программа, которая делает только один простой круг. В настоящее время я изучаю библиотеки winbgim и graphics.h. Я скачал его, я скачал библиотеку и включил ее в следующие кодовые блоки этот и это работает правильно.

Но когда я пытаюсь использовать его, появляется другой код, и на 302-й строке он выдает «ошибка: переопределение« int right ». Я делаю это в файле консоли в IDE Codeblocks.

Кто-нибудь может помочь? Вот мой код:

#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

Решение

Я не знаю, подходит ли он этому форуму или нет, но я просто хотел сказать (мир) что-то. Недавно я решил попробовать библиотеку WinBGIm, поэтому я скачал пакет и после настройки всех параметров компилятора и компоновщика запустил мой простой код «Hello World». Но я получил следующее сообщение от моего компилятора (MinGW, CodeBlocks IDE).

d: \ CodeBlocks \ MinGW \ Bin .. \ Lib \ НКУ \ mingw32 \ 4.4.1 …….. \ Include \ graphics.h | 302 | ошибка:
переопределение ‘int right’ |

d: \ CodeBlocks \ MinGW \ Bin .. \ Lib \ НКУ \ mingw32 \ 4.4.1 …….. \ Include \ graphics.h | 302 | ошибка:
‘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
);

Поэтому я просто изменил одну из «правильных» (более поздних) переменных на «top». Вот и все.

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

Другие решения

Я сделал то же самое, что предложил @Puneet, просто изменил имя одной из переменных с именем «right».

То, что я хочу добавить в том, что вы не можете изменить имя в кодовых блоках (по крайней мере, я не смог этого сделать, изменения были проигнорированы). Поэтому я предлагаю вам сохранить файл кода (ов), закрыть IDE и открыть файл graphics.h в текстовом редакторе, изменить имя, сохранить, и все готово.

Вы можете найти свой каталог MinGW, открыв новый проект codeblocks, щелкните правой кнопкой мыши в <iostream> и выберите что-то вроде открытого файла, который откроет заголовок в новой «вкладке» кодовых блоков, щелкните правой кнопкой мыши на вкладке и нажмите «Открыть», содержащую папку. Это оно.

1

По вопросам рекламы [email protected]