小弟菜鸟,新得一程序,调试7警告,一错误,不知道怎么解决,请高手大哥帮忙调试解决问题,在线请教!!!
#include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
#include<dos.h>
union REGS r;
int s=0;
int xtop,ytop,xbottom,ybottom;
void drawrh(int x,int y)
{line(x,y,x+15,y);
line(x+15,y-5,x+15,y+5);
line(x+15,y-5,x+35,y-5);
line(x+15,y+5,x+35,y+5);
line(x+35,y-5,x+35,y+5);
line(x+35,y,x+50,y);
}
void mouse(int x,int y)
{
line(x-5,y,x+5,y);
line(x,y-5,x,y+5);
}
void read(int *x,int *y,int *mbutt,int *oldx,int *oldy)
{
*oldx=*x;
*oldy=*y;
do
{r.x.ax=3;
int86(51,&r,&r);
*x=r.x.cx;
*y=r.x.dx;
*mbutt=r.x.bx;
}while(*x==*oldx&&*y==*oldy&&*mbutt==0);
}
void tuo(int *butt,int *mx,int *my,int *ox,int *oy)
{
char *p;
while(*butt==1)
{
mouse(*ox,*oy);
if(s==0)
{
s=1;
drawrh(*mx,*my);
}
read(mx,my,butt,ox,oy);
drawrh(*ox,*oy);
drawrh(*mx,*my);
mouse(*mx,*my);
bar(5,5,100,25);
scanf(p,"%d %d",*mx,*my);
outtextxy(10,10,p);
outtextxy(60,10,stry);
}
xtop=(*mx);ytop=(*my-5);
xbottom=(*mx+50);ybottom=(*my+5);
}
void main()
{
int mx,my,ox,oy;
int butt;
char *strx,*stry;
int gd=DETECT,gm;
registerbgidriver( EGAVGA_driver );
initgraph(&gd,&gm,"e:\\tc\\bgi");
drawrh(50,130);
setwritemode(XOR_PUT);
r.x.ax=3;
int86(51,&r,&r);
mx=r.x.dx;
my=r.x.cx;
butt=r.x.bx;
mouse(mx,my);
setfillstyle(1,BLACK);
for(;;)
{
bar(5,5,100,25);
scanf(strx,"%d",mx);
scanf(stry,"%d",my);
outtextxy(10,10,strx);
outtextxy(60,10,stry);
read(&mx,&my,&butt,&ox,&oy);
mouse(mx,my);
delay(20);
if((s==0)&&mx>50&&mx<100&&my>125&&my<135&&butt==1)
{
tuo(&butt,&mx,&my,&ox,&oy);
}
if(s==1&&mx>(xtop)&&mx<(xbottom)&&my<(ybottom)&&my>(ytop)&&butt==1)
{
drawrh(xtop,ytop+5);
s=0;
tuo(&butt,&mx,&my,&ox,&oy);
}
mouse(ox,oy);
mouse(mx,my);
if(butt==2)
{
closegraph();
exit(0);
}
}
}
PS:这程序的问题是(利用光标作图程序)想请教一下高手们一下,这程序是不是能达到这目的,还有scanf输出语句( scanf(p,"%d %d",*mx,*my);)里面是不是能用 *mx,*my ?而不是用&mx,&my?前者可行吗?
PS:这调试是出的七警告一错误,我觉得是一个地方的错误才导致的,不知道是不是这原因,请各位高手大哥一定调试解答,小弟急于知道答案!!!
PS:( initgraph(&gd,&gm,"e:\\tc\\bgi");这句话是什么意思,不懂!!!汗~~~~另(union REGS r;)这句也不懂,但见好多程序也用了的,小弟初学,请一定帮忙解答!!!谢谢各位