Windows 7 64 ビットで DosBox を使用して、Turbo C++ でグラフィカル プログラムを実行しています。IBM3514
ここで、グラフィックス ドライバーを高解像度モード ( ) で使用したいと考えていますIBM3514HI
。それで、私はそれをテストするために次の最低限のプログラムを書きました:
#include <graphics.h>
#include <iostream.h>
void main() {
int gd = IBM3514, gm = IBM3514HI, e;
initgraph(&gd, &gm, "C:\\TC\\BGI");
if (e = graphresult()) {
cout << grapherrormsg(e);
}
cleardevice();
rectangle(100, 100, 300, 300);
cin.get();
closegraph();
restorecrtmode();
}
これで、プログラムはエラーなしでコンパイルおよび実行されます。ただし、initgraph
関数呼び出しはグラフィック モードを初期化しません。の戻り値はgraphresult
です0
。したがって、エラーは発生していません。それでも、プログラムはテキスト モードで実行されます。点滅するアンダースコアが表示され、四角形は描画されません。
C:\TC\BGI
フォルダを確認したところ、IMB3514.BGI
ファイルが存在します。したがって、グラフィックスドライバーをロードすると思います。それでも、なぜプログラムがグラフィック モードで実行されないのか、エラーが発生するのかさえわかりません。ただし、デフォルト設定を使用すると、完全に正常に動作します。int gd = DETECT, gm;
私のプログラムが動作しない理由についての説明は大歓迎です。この問題の修正を提供してください。色で1024x768
画面に描きたいです。256