答出来给200分,为什么在运行<graphic.h>程序时,不能出现图画结果,而是自动退出tc

2025-02-26 03:24:21
推荐回答(6个)
回答1:

那是应该的!没有图形出现应该是程序编译连接时就没有把图形的lib文件一起连接进去,双击也不会有图形出来,当然如果按二楼的说也是不会出现图形!
你看看你的TC目录下的LIB文件夹里有没有这个文件GRAPHICS.LIB,如果没有那就要生成这个文件!其实不生成也行,不过你就要在程序里加很多东西,如显示驱动检测,显示的模式等等!所以建议你还是生成这个文件吧!按以下步骤吧

假设你的TC装在c盘下
1.将驱动程序EGAVGA.BGI转换成目标文件EGAVGA.OBJ:
C:\TC>BGIOBJ EGAVGA

按同样的办法,将字体文件*.CHR转换成目标文件*.OBJ:

C:\TC>BGIOBJ TRIP
C:\TC>BGIOBJ LITT
C:\TC>BGIOBJ SANS
C:\TC>BGIOBJ GOTH

2.将上述建立的OBJ文件加入到GRAPHICS.LIB库文件中,具体方法如下:

C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+EGAVGA
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+TRIP
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+LITT
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+SANS
C:\TC>TLINK C:\TC\LIB\GRAPHICS.LIB+GOTH

也可以使用TLIB、PRJ程序代替TLINK。

3.在程序中调用initgraph()函数前,应加上如下语句:
registerbgidriver(EGAVGA-driver);

它通知连接程序把EGAVGA驱动程序装入用户的执行程序中,同样在装入字体文件之前要加上如下语句:
registerbgifont(字体文件名);

4.通过上述处理后,编译连接后的执行程序就可以在任何目录下运行了。这时,将屏幕初始化为图形模式的函数可改写为:

void InitGra(void)
{int GD=DETECT,GM;
registerbgidriver(EGAVGA_driver);
registerbgifont(triplex_font);
registerbgifont(small_font);
registerbgifont(sansserif_font);
registerbgifont(gothic_font);
initgraph(&GD,&GM,"");
}
记得头文件要包含Graphics.h,不然会出错!

C/C++语言提供了十分丰富的图形函数,图形函数文件为Graphics.h,使用图形函数前须先将屏幕设置为图形模式,C/C++语言提供了下面的函数:
void far initgraph(int far *GD,int far *GM,char *P);

其中,GD和GM分别表示图形驱动程序和图形模式,P指图形驱动程序所在的目录路径。

图形驱动程序由Borland公司(对于Turbo C和Borland C++)提供,同时C/C++语言还提供了退出图形状态的函数closegraph(),格式为:
void far closegraph(void);

回答2:

1、检查函数库graph.lib连接好了没

2、要初始化initgraph。找找相关的资料

3、最好用TC3.0

4、BGI目录要写对比如"F:/Turbo/BGI"不能有空格

回答3:

有没有将屏幕设置为图形模式阿?

回答4:

在VC++下的话需要自己写, 在TC下有这个自定义库

回答5:

graphic.h 不是C/C++的标准库,有可能你所安装的TC 版本没有这个graphic.h 你可以到其他机子上copy个源文件.更正楼上的,VC 不能编译graphic.h 也没有这个

回答6:

是DOS程序.故计玄!在DOS下试试吧.