注册 登录
编程论坛 C图形专区

[求助]tc图形编程出错

wt86024 发布于 2007-11-23 08:25, 1839 次点击
我用tc画图时出现16位MS_DOS出错,怎么回事啊,要不是出错就成黑屏了,就返回不过来了.
#include <Conio.h>
#include <graphics.h>
#include <math.h>
main()
{

float x[200],y[200],f[200];
int gdriver=DETECT,gmode,i,j;
initgraph(&gdriver,&gmode," ");

for(i=0;i<20;i++) x=1;
for(i=20;i<200;i++) x=0;
for(i=0;i<20;i++) y=0.125*(i+5);
for(i=20;i<200;i++) y=0;
for(i=0;i<200;i++)f=0;
line(20,120,300,120);
line(30,20,30,220);
moveto(30,120);
for(i=0;i<200;i++) lineto(30+i,120-25*x);
line(320,120,620,120);
line(320,20,320,220);
moveto(325,120);
for(i=0;i<200;i++) lineto(325+i,120-15*y);
line(30,440,300,440);
line(150,240,150,440);
moveto(145,440);
for(j=0;j<40;j++)
{for(i=0;i<=j;i++) f[j]+=x*y[j-i];
putpixel(145+2*j,440-2*f[j],4);
}
getch();
return (0);
}


 我的电脑也是,在用TC编写图形程序编译会出错:CPU遇到无效指令!而且在别人机子上生成了EXE文件也执行不了,“滴”的一声报警(和开机时BIOS自检发出的一样)后就自动最小化了。好象是硬件或显卡驱动的问题。现在也没解决。
6 回复
#2
neverTheSame2007-11-24 00:45
数组x,y,f的使用没有使用下标.
#3
wt860242007-11-24 12:59
那是打漏了,实际程序上有的,能够运行,不过要么是黑屏,要么就出错
#4
arrogone2007-11-25 10:40
是驱动的问题吧,我也遇见过这样的问题,有的书上说是不支持,不知道是什么意思。
#5
yflovehj2007-11-25 20:03
可以换一下驱动嘛!
int gdriver,gmode,i,j;
gdriver=VGAHI;
gmode=VGA;
#6
eternitelove2007-12-06 10:35
同样的问题
用DETECT也不行
我怀疑是不是要在纯DOS下才行啊
#7
hughyjy2007-12-24 14:12
回复 1# 的帖子
你的程序没有给出驱动程序(BGI文件)的路径,所以程序不能完成对图形模式的初始化。在initgraph()函数的第三个参数应该是 BGI 文件的路径,比如"C:\\tc\\bgi",用TC的话应该在 tc \ bgi 中,也有在tc下的,你自己看看。另外要想生成的EXE文件可以在别的机子上运行的话,需要建立独立图形程序,这需要在 initgraph()函数前加上 registerbgidriver(EGAVGA_driver)函数,前提是你已经把EGAVGA.bgi转换成 EGAVGA.obj 并加入到graphics.h中。关于独立图形运行程序的建立可找找相关资料。

[[italic] 本帖最后由 hughyjy 于 2007-12-24 14:14 编辑 [/italic]]
1