标题:C程序运行错误
只看楼主
KEVIN_LEE
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-11-3
 问题点数:0 回复次数:2 
C程序运行错误

我将下面代码运行后,出现了:
"Linker Error:Undefined symbol '_Putstar' in module ZP.C"
"Linker Error:Undefined symbol '_EGAVGA_driver' in module ZP.C"
我尝试着修改一下,但发现问题实在解决不了,谁告诉我应该如何去修改定义?




#include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define IMAGE_SIZE 10
void draw_image(int x,int y);
void Putstar(void);

main()
{
int graphdriver=DETECT;
int graphmode,color;
void *pt_addr;
int x,y,maxx,maxy,midy,midx,i;
unsigned int size;
registerbgidriver(EGAVGA_driver);
registerbgifont(TRIPLEX_FONT);
initgraph(&graphdriver,&graphmode,"");
maxx=getmaxx(); /*取得当前图形方式下允许的x最大值*/
maxy=getmaxy(); /*取得当前图形方式下允许的y最大值*/
midx=maxx/2;
x=0;
midy=y=maxy/2;
setcolor(YELLOW);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(midx,400,"KEVIN LEE'S WORLD");
setbkcolor(BLACK);
setcolor(RED);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
ellipse(midx,midy,130,50,160,30);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
draw_image(x,y); /*画飞船*/
size=imagesize(x,y-IMAGE_SIZE,x+(4*IMAGE_SIZE),y+IMAGE_SIZE);
pt_addr=malloc(size);
getimage(x,y-IMAGE_SIZE,x+(4*IMAGE_SIZE),y+IMAGE_SIZE,pt_addr);
Putstar();
setcolor(WHITE); /*画星*/
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
rectangle(0,0,maxx,maxy); /*画框*/
while(! kbhit())
{
Putstar();
setcolor(RED);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
ellipse(midx,midy,130,50,160,30); /*画一个围绕星球的光环*/
setcolor(BLACK);
ellipse(midx,midy,130,50,160,30);
for(i=0;i<=13;i++)
{
setcolor(i%2==0?LIGHTBLUE:BLACK);
ellipse(midx,midy,0,360,100,100-8*i); /*画星球*/
setcolor(LIGHTBLUE);
ellipse(midx,midy,0,360,100-8*i,100);
}
putimage(x,y-IMAGE_SIZE,pt_addr,XOR_PUT); /*恢复原先画面*/
x=x>=maxx?0:x+6;
putimage(x,y-IMAGE_SIZE,pt_addr,XOR_PUT); /*在另一个位置显示飞船*/
}
free(pt_addr); /*释放缓冲区空间*/
closegraph();
return;
}
void draw_image(int x,int y) /*画飞船*/
{
int arw[11];
arw[0]=x+10;arw[1]=y-10,arw[2]=x+34;arw[3]=y-6;
arw[4]=x+34;arw[5]=y+6,arw[6]=x+10;arw[3]=y+10;
arw[9]=x+10;arw[10]=y-10;
moveto(x+10,y-4);
setcolor(14);
setfillstyle(1,4);
linerel(-3*10,-2*8); /*画尾部本线*/
moveto(x+10,y+4);
linerel(-3*10,+2*8);
moveto(x+10,y);
linerel(-3*10,0);
setcolor(3);
setfillstyle(1,LIGHTBLUE);
fillpoly(4,arw); /*画飞船天体*/
}
void Pustar(void) /*画星*/
{
int seed=1858;
int i,dotx,doty,h,w,color,maxcolor;
maxcolor=getmaxcolor(); /*得到当前模式下,最大颜色函数*/
w=getmaxx();
h=getmaxy();
srand(seed);
for(i=0;i<250;++i)
{
dotx=1+random(w-1);
doty=1+random(h-1);
color=random(maxcolor);
setcolor(color); /*用点表示小星*/
putpixel(dotx,doty,color); /*用小圆表示星*/
circle(dotx+1,doty+1,1);
}
srand(seed);
}

搜索更多相关主题的帖子: int void include Linker 
2006-11-17 21:15
KEVIN_LEE
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-11-3
得分:0 
头疼~谁来帮我解决下错误?
2006-11-18 13:49
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
应该连接外部库文件吧

如果我没记错,好象_EGAVGA_driver 与 _Putstar
是在一个图形LIB库中的定义

[此贴子已经被作者于2006-11-24 21:08:23编辑过]


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-11-24 21:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-103705-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.404933 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved