转载请注明出处
由于阅历有限,篇幅不周之处还望指出,谢谢
先来段代码
#include <graphics.h>
void main(){
int gdrv,gmd;
detectgraph(&gdrv,&gmd);
printf("driver is %d,mode is %d",gdrv,gmd);
getch();
initgraph(&gdrv,&gmd,"c:\\tc3\\bgi");
bar3d(33,11,135,255,22,1);
closegraph();
getch();
}
TC编译通过,但是运行的时候有问题,
提示:视频设备无法初始化全屏幕模式 。(TITLE=16 位 MS-DOS 子系统)
这下慌了,于是百度之,有MSDN的链接说设置MS-DOS快捷方式的属性。发现没用,只对TC3有用(启动式不再弹出此类窗口)
于是继续遨游在搜索引擎,发现了DOSBox这么个好东西。
下载下来,发现运行成功:
但是有提示Graphics not initialized (use 'initgraph')
于是小小的又慌了一下,咳咳。
原因就在于图形库文件没有加载(实际上是找不到)
有两种解决方法:
一、如果你是直接将EXE拖过去运行的,或者你怕麻烦。
那么编程的时候将EGAVGA驱动程序装入到EXE文件中
1、找到BGIOBJ .EXE所在文件夹,运行命令BGIOBJ EGAVGA //用于将该文件转换成OBJ文件,新文件和旧文件不一样,但是差不多,你懂得
2、继续命令TLIB Graphics.lib+EGAVGA //用于将OBJ目标模块装到该库文件当中
3、在代码图形初始化之前加代码:
registerbgidriver(EGAVGA_driver);
编译,DOSBox中运行!
二、不想将驱动程序装入EXE文件
先将开头的代码编译。然后打开DOSBox
敲命令加载C盘: mount c c:\或者按提示自己加载
然后运行程序
最后附上运行成功截图:
附上DOSBOX 0.74下载地址~:
http://download.youkuaiyun.com/detail/xiaoy_h/5062271