下面的程序是我处理用的,但是一直运行有错误,总是提示:BGI Error: Graphics not initialized (use 'initgraph') ,我看了好多帖子都没有什么用!! 希望大家能够帮助 十分的紧急!! 谢谢了!
下面的方法是我从网上找来的,我也用了但是还是不行,首先是前面2步的运行就存在问题,我不知道是我理解错了还是方法本身有问题;再者就是在程序中使用函数 registerbgidriver(EGAVGA_driver) 的时候总是提示:Udefined symbol EGAVGA_driver !!! 我不明白是什么原因 请各位大哥救命呀!!
( 为了使用方便,应该建立一个不需要驱动程序就能独立运行的可执行图形程序,Turbo C中规定用下述步骤(这里以 EGA、VGA显示器为例):
I. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
II. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。
III. 在程序中initgraph()函数调用之前加上一句: registerbgidriver(EGAVGA_driver):
该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。
经过上面处理,编译链接后的执行程序可在任何目录或其它兼容机上运行。)
#include <graphics.h> //此头文件是图形头文件;
#include <stdio.h> //此文件是数学函数头文件;
#include <time.h> //此文件是时间头文件;
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
void main()
{
int i;
int gdriver=DETECT,gmode=;
system("cls");
detectgraph(&gdriver,&gmode);
printf("The GraphDriver is %d,GraphMode is %d\n",gdriver,gmode);
initgraph(&gdriver, &gmode, "C:\\TC\\BGI"); //初始化图形系统,
for(i=0;i<=100;i++)
{
setcolor(i); //设置当前画线颜色;
setlinestyle(0,0,1); //设置当前画线宽度和类型
setfillstyle(1,3); //设置填充模式和颜色;
circle(300, 240, 100-i); //以给定的半径以(x, y)为圆心画圆;
floodfill(300, 240,i); //填充一个有界的区域;
delay(9e245); //将程序的执行暂停一段时间(毫秒)
}
getch(); //从控制台无回显地取一个字符
closegraph(); //关闭图形系统;
}
[此贴子已经被unicorn于2006-11-1 18:25:16编辑过]