web-dev-qa-db-ja.com

#include <graphics.h>によるエラー

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の代わりにこれらを学ぶべきですか?

5
Ayushi Jha

graphics.hは非標準のヘッダーです。ほとんどの場合、Turbo C DOSコンパイラの古いBGIグラフィックライブラリを参照しています。特定のコンパイラでのみ機能します。そしてもちろん、DOSは今日では完全に時代遅れのOSです。

3Dグラフィックスプログラミングに興味がある場合は、OpenGLやDirectX、あるいはその両方が、より優れた最新の代替手段であり、多くのコンパイラでサポートされています。

7
Lundin

Code :: blocks IDEに「graphics.h」を含めてソースコードをコンパイルしようとすると、winBGImライブラリをセットアップする必要があります。

  • http://winbgim.codecutter.org/ からWinBGImをダウンロードするか、( direct link )を使用します
  • それを抽出します。
  • graphics.hを開き、行に移動302int right=0int top=0に変更
  • graphics.hおよびwinbgim.hファイルをコンパイラディレクトリのインクルードフォルダにコピーします。
  • libbgi.aをコンパイラディレクトリのlibフォルダにコピーします
  • Code :: blocks open Settings >> Compiler and debugger >> linker settings
  • リンクライブラリパーツのAddボタンをクリックし、libbgi.aファイルを参照して選択します
  • 右側の部分(つまり、他のリンカーオプション)に貼り付けコマンド
    -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
  • Okをクリックします

このビデオ チュートリアルも確認できます。

Compiler options

2
Panos Kal.

Graphics.hヘッダーファイルを持つCソースコードをコンパイルする場合、ファイル拡張子を.cppに変更する必要があります。そうしないと、「致命的なエラー:sstream:そのようなファイルディレクトリはありません」というエラーが発生します。

したがって、単に.c拡張子を.cppに変更します。 Code :: Blocksを使用してコードを実行している場合、graphics.hソースコードをコンパイルするための ステップバイステップの手順 を次に示します。

1
Stalker

トップアンサーが機能せず、あなたが得ている場合:

  • _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_

0
jackw11111