5

winbgim.h ヘッダー ファイルを使用するプログラムの作成に問題があります。シンプルな円を1つだけ作る簡単なプログラムです。現在、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|エラー: 以前ここで宣言された 'int right' |

||=== ビルドが終了しました: 2 つのエラー、0 の警告 ===|

問題をグーグルで調べた後、何もわかりませんでした(CodeBlocks-EPをソリューションとして使用する提案を数えない場合)。ヘッダー ファイルを調べていたところ、問題が見つかりました (ええ!!!) 問題は関数 printimage にありました。元の宣言は、

//元の宣言。2 つの「正しい」変数があることに注意してください

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

だから私がしたことは、単に「右」(後の前者)変数の1つを「上」に変更したことです。それでおしまい。

//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」という名前の変数の 1 つの名前を変更するだけです。

追加したいのは、コードブロック内で名前を変更できないことです (少なくとも私はできませんでした。変更は無視されました)。したがって、コード ファイルを保存し、IDE を閉じて、「graphics.h」ファイルをテキスト エディターで開き、名前を変更して保存することをお勧めします。

MinGW ディレクトリを見つけるには、新しい codeblocks プロジェクトを開き、右クリックして<iostream>ファイルを開くなどを選択します。これにより、新しい codeblocks の「タブ」でヘッダーが開き、タブを右クリックして、含まれるフォルダーを開くをクリックします。それでおしまい。

于 2017-01-12T06:06:52.920 に答える