读书人

c中graphics有关问题

发布时间: 2012-02-24 16:30:38 作者: rapoo

c中graphics问题请教高手!
下面这段程序在TC下编译成功,但是执行时却出现错误,
程序代码:

#include <graphics.h>
#include <stdlib.h>

void main(void)
{
/*setbkcolor(LIGHTGREEN);*/
int i;
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, " ");
setcolor(11);
setlinestyle(5,0,10);/*设置线型*/
for(i=50;i <=600;i+=10)/*画围墙*/
{
rectangle(i,40,i+10,49); /*上边*/
rectangle(i,451,i+10,460);/*下边*/
}
for(i=40;i <=450;i+=10)
{
rectangle(50,i,59,i+10); /*左边*/
rectangle(601,i,610,i+10);/*右边*/
}
}

执行时提示:BGI Error: Graphics not initialized (use 'initgraph ');
请问这是什么意思?

[解决办法]
搜一下,一大堆
[解决办法]
Turbo C为用户提供了一个功能很强的画图软件库,它又称为BorLand图形接口(BGI),它包括图形库文件(graphics.lib),图形头文件(graphics.h)和许多图形显示器(图形终端)的驱动程序(如CGA.BGI、EGAVGA.BGI等)。还有一些字符集的字体驱坳程序(如goth.chr黑体字符集等)。编写图形程序时用到的一些图形库函数均在graphics.lib 中,执行这些函数时,所需的有关信息(如宏定义等)则包含在graphics.h头文件中。因此用户在自已的画图源程序中必须包括graphics.h头文件,在进行目标程序连接时,要将graphics.lib连接到自己的目标程序中去。

在编制图形程序时,进入图形方式前,首先要在程序中对使用的图形系统初始化,即要用什么类型的图形显示适配器的驱动程序,采用什么模式的图形方式(也就是相应程序的入口地址),以及该适配器驱动程序的寻找路径名。所用系统的显示适配器一定要支持所选用的显示模式,否则将出错。Turbo.C提供了一个图形系统初始化函数initgraph可完成这些功能。

void far initgraph(int far *driver, int far *mode, char for path-for-driver);当我们使用的存储模式为tiny(微型)、small(小型)或medium(中型)时,不需要远指针,因而可以将初始化函数调用格式写成如下形式(该说明适用于后面所述的任一函数):intitgrapg(&graphdriver, &graphmode,,””); 其中驱动程序目录路径为空字符“”时,表示就在当前目录下,参数graphmode用所示的模式号或标示符来定义,参数graphdriver是一个枚举变量{DETECT,CGA,VGA,…},一般: graphdriver=DETECT 。一旦执行了初始化,显示器即被设置成相应模式的图形方式。

用TC运行程序时,产生错误 BGI Error:Graphics not initialized (use 'initgraph ')?这是怎么回事呢?

原来,在TC使用图形编程时,需要用BGI图形开发包,正因为我们在编译连接的时候没有将这个图形驱动包含进去,所以无法执行.

把图形驱动包含进去,有两种方法:


1 我们在使用initgraph()时,发现他有三个参数,第三个参数正是对图形驱动的调用路径. 即你要指明VGAEGA . BGI(或者其他图形驱动如,SVGA.BGI)所在的位置。如果你使用的是win-tc的话,会发现它提供了第三方的图形驱动包。

2 或者我们在initgraph()调用之前我们调用 registerbgidriver(VGAEGA_driver);这样就自动加载了驱动程序。有一点要注意:在使用这个功能之前,必须确保VGAEGA.BGI已经加载在graphics.lib之中。(如果前面的问题已经解决就说明已经加载了)如果没有加载,如要按照以下的方法进行加载。

在TC下找到BGIOBJ.exe这个程序,并找到VGAEGA.BGI这个文件,把VGAEGA.BGI这个文件复制到与BGIOBJ.exe同一目录下,

执行:BGIOBJ VGAEGA(把bgi转换成obj)

再执行:TLIB LIB\GRAPHICS.LIB+EGAVGA(加载到lib中) 即可

读书人网 >C语言

热点推荐