Cのgraphics.h
ヘッダーファイルを含むプログラムをコンパイルしようとしています。インクルードフォルダーにgraphics.h
およびwinbgim.h
ヘッダーファイルを追加し、libにlibbgi.a
も追加しましたフォルダ。
テストのために、簡単なhello worldプログラムを作成し、graphics.h
ヘッダーファイルを含めました。
しかし、コンパイル時に次のエラーが発生しました。
Firstc.c:2:0からインクルードされたファイル:c:\ mingw\bin ../ lib/gcc/mingw32/4.7.1 /../../../../ include/graphics.h:30 :59:致命的なエラー:sstream:そのようなファイルまたはディレクトリのコンパイルは終了していません。
同じ質問をされた他のフォーラムでも検索を試みましたが、回答が得られませんでした。
別の質問、openGLやDirectXのようなCおよびC++の他のグラフィックオプションに出くわしました。 graphics.hの代わりにこれらを学ぶべきですか?
graphics.h
は非標準のヘッダーです。ほとんどの場合、Turbo C DOSコンパイラの古いBGIグラフィックライブラリを参照しています。特定のコンパイラでのみ機能します。そしてもちろん、DOSは今日では完全に時代遅れのOSです。
3Dグラフィックスプログラミングに興味がある場合は、OpenGLやDirectX、あるいはその両方が、より優れた最新の代替手段であり、多くのコンパイラでサポートされています。
Code :: blocks IDEに「graphics.h」を含めてソースコードをコンパイルしようとすると、winBGIm
ライブラリをセットアップする必要があります。
WinBGIm
をダウンロードするか、( direct link )を使用しますgraphics.h
を開き、行に移動302
int right=0
をint top=0
に変更graphics.h
およびwinbgim.h
ファイルをコンパイラディレクトリのインクルードフォルダにコピーします。libbgi.a
をコンパイラディレクトリのlibフォルダにコピーしますSettings
>> Compiler and debugger
>> linker settings
Add
ボタンをクリックし、libbgi.a
ファイルを参照して選択します-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
Ok
をクリックしますこのビデオ チュートリアルも確認できます。
Graphics.hヘッダーファイルを持つCソースコードをコンパイルする場合、ファイル拡張子を.cppに変更する必要があります。そうしないと、「致命的なエラー:sstream:そのようなファイルディレクトリはありません」というエラーが発生します。
したがって、単に.c拡張子を.cppに変更します。 Code :: Blocksを使用してコードを実行している場合、graphics.hソースコードをコンパイルするための ステップバイステップの手順 を次に示します。
トップアンサーが機能せず、あなたが得ている場合:
_error: narrowing conversion of 'x' from 'int' to 'short unsigned int'
_
グラフィックウィンドウが表示されない
以下 this チュートリアル、および提供されたwinBGImソースリンクでバグ修正済みヘッダー/ライブラリ(winBGIm(bug-free).rar
)を使用して、Windows 10で動作しました。
Mirror to winBGIm(bug-free_.rar)
コンパイル:_g++ example.cpp -Wall -m32 -std=c++11 -pedantic -g -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 -o example.exe
_