程序停止工作 - graphics.h

时间:2016-06-30 08:33:20

标签: c++ windows graphics bgi

我已经创建了一个绘制矩形的程序,但是一旦启动它,就会弹出一个窗口并说:“不幸的是,程序已经停止了”。为什么会这样?我该怎么做才能解决它?

#include <iostream>
#include <graphics.h>

int main() {
initwindow(500, 300);
getch();
rectangle(200, 100, 200, 100);
closegraph();
}

2 个答案:

答案 0 :(得分:3)

您尚未使用InitGraph()

启动图形引擎

http://www.programmingsimplified.com/c-graphics-programming-tutorial

就像OpenGL,Direct3D,SDL等有初始化功能一样,BGI有必须使用的InitGraph(),甚至可以绘制一个简单的点!

答案 1 :(得分:1)

这是因为您在 Win7 或更新操作系统上运行旧的16位 MS-DOS 应用程序,这不是一个好主意(并且x64位将不再工作)。即使您使用32位编译器, Borland BGI 也是16位。问题的另一个可能性是错误的gfx BGI-driver ,我没有看到任何地方的初始化(我错过了使用initgraph但是更新的确实使用了 BGI 所以我错了)。那该怎么做:

  1. 使用一些工作示例检查您的代码,其中有很多 SO
  2. 检查 BGI 驱动程序位置(旧 MS-DOS 仅支持paths+filename 66个字符!!!)
  3. 尝试在兼容模式下运行您的应用( MS-DOS W9x XP
  4. WinBGI 模拟器替换旧的16位Borland BGI
  5. DOSBox 或任何 MS-DOS 模拟器
  6. 中运行您的应用