谁能帮我调通这段经典代码?

fengdream 2007-05-10 11:35:12
函数名: getmaxx
功 能: 返回屏幕的最大x坐标
用 法: int far getmaxx(void);
程序例:

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

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
char xrange[80], yrange[80];

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}

midx = getmaxx() / 2;
midy = getmaxy() / 2;

/* convert max resolution values into strings */
sprintf(xrange, "X values range from 0..%d", getmaxx());
sprintf(yrange, "Y values range from 0..%d", getmaxy());

/* display the information */
settextjustify(CENTER_TEXT, CENTER_TEXT);
outtextxy(midx, midy, xrange);
outtextxy(midx, midy+textheight("W"), yrange);

/* clean up */
getch();
closegraph();
return 0;
}
在vc下当然是不行的,在tc下调,编译都没问题,连接时候出现n多undefined symbol:比如 undefined symbol _getmaxx in main.c,undefined symbol _closegraph in main.c;
真郁闷,对tc算是恨之入骨了,大家知道怎么办吗?或者用别的编译器调试?

用borland c怎么调试啊?我这有bc45,调ucosII用的,但不知道怎么调试这个文件...
...全文
373 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyu2202863 2007-05-10
  • 打赏
  • 举报
回复
对的,你没有注册图形库~
给各方法给你:
#include "Conio.h"
#include "graphics.h"
#define closegr closegraph

void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(&gd, &gm, "");
}

int main(void)
{
initgr(); /* BGI初始化 */

/*****此部分添加你自己的代码,例如
line(25, 25, 220, 220);
circle(100, 100, 50);
等等*****/

getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}
workonly 2007-05-10
  • 打赏
  • 举报
回复
没有链接图形库. lib
newRoadExplorer 2007-05-10
  • 打赏
  • 举报
回复
bc里有graphic.h这个头文件么?
请教一下
fengdream 2007-05-10
  • 打赏
  • 举报
回复
不用tc你们用什么啊?只要能调通就行啦。我也不一定非用tc,躲还来不及呢。。。
nevergone 2007-05-10
  • 打赏
  • 举报
回复
用WINTC看看
庄鱼 2007-05-10
  • 打赏
  • 举报
回复
我记得以前是用静态图形库时,要先调用一个setgraphic什么的函数,现在不用TC已经记不清了
fengdream 2007-05-10
  • 打赏
  • 举报
回复
提示
BGI Error:Graphics not initialized (use 'initgraph')
不能初始化
fengdream 2007-05-10
  • 打赏
  • 举报
回复
to:
FreeFice(庄鱼)
我已经连进去了,但是还是不能初始化,不知为什么。。。
fengdream 2007-05-10
  • 打赏
  • 举报
回复
to:
chenyu2202863(yuyu) ( )
你那个东东不行,连接时候提示我 undefined sysmol _EGAVGA_driver...
庄鱼 2007-05-10
  • 打赏
  • 举报
回复
这是因为在Exe执行的当前目录下没有EGAVGA.BGI文件
记得TC里有个文件好像是BGI2OBJ什么的,将BGI转化为OBJ然后链接到库里面去,这样就不需要每次运行时都要在当前目录下查找又没有相应的BGI文件了。
fengdream 2007-05-10
  • 打赏
  • 举报
回复
现在链接上图形库了,Options/Linker中的Graphics lib选
为on。又有新问题了:
显示:Graphics error! Device driver file not found(EGABGA.BGI)
可是我再F:\TC\BGI明明就能看到这个文件啊?
fengdream 2007-05-10
  • 打赏
  • 举报
回复
bc里有graphic.h这个头文件么?
________________________
有,我看过的。
fengdream 2007-05-10
  • 打赏
  • 举报
回复
to:
workonly() ( ) 信誉:100 Blog 加为好友
没有链接图形库. lib
________________________________________________
请教怎么去链接图形库.lib呀?

to:
chenyu2202863(yuyu) ( )
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
_______________________________________________
大哥,bgi是个 什么东东啊,以前没接触过,请赐教...

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧