0

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

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

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

2 回答 2

3

您尚未使用 InitGraph() 启动图形引擎

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

就像 OpenGL、Direct3D、SDL 等都有初始化函数一样,BGI 有 InitGraph(),你必须使用它,甚至绘制一个简单的点!

于 2016-07-01T08:04:44.353 回答
1

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

  1. 用一些工作示例检查您的代码,这里有很多这样的示例
  2. 检查BGI驱动程序位置(旧的MS-DOS只支持paths+filename最多66字符!!!)
  3. 尝试在兼容模式下运行您的应用程序(MS-DOSW9xXP
  4. WinBGI模拟器替换旧的 16 位 Borland BGI
  5. 在DOSBox或任何MS-DOS模拟器中运行您的应用程序
于 2016-07-01T06:49:11.513 回答