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

独立图形运行程序的建立

king_2345484 发布于 2006-09-12 11:31, 1125 次点击
我的tc2.0是安装在e:盘中的
我在dos下运行了I. 在E:\TC子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
II. 在E:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中
之后我做了以下程序:
此程序保存在e:\tc中
文件名为:
register.c
/*********************************/
#include<stdio.h>
#include<graphics.h>
int main()
{
int gdriver=DETECT,gmode;
registerbgidriver(EGAVGA_driver);
/*建立独立图形运行程序 */
initgraph(&gdriver, &gmode,"c:\\caic\\bgi");
bar3d(50,50,250,150,20,1);
getch();
closegraph();
return 0;
}
/**********************************/
请问为什么会提示:
Linker Error:Undefined sysmbol '_EGAVGA_driver' in module REGISTER.C
9 回复
#2
一笔苍穹2006-09-12 11:38
这段程序本身没有错。建议检查:
TLIB LIB\GRAPHICS.LIB+EGAVGA这一步是否真的成功了(切换至虚拟DOS全屏模式下执行命令再看反馈结果)
如果成功了就再试试把:
initgraph(&gdriver, &gmode,"c:\\caic\\bgi");改成
initgraph(&gdriver, &gmode,"");
实在不行就下个WIN-TC,里面的GRAPHICS.LIB已经经过处理了,可以省去自己往里面加EGAVGA.OBJ这一步。
#3
king_23454842006-09-12 17:01

我试过了
什么也没有返回!
是不是就是成功了?》!

#4
一笔苍穹2006-09-13 12:45

在全屏模式下吗?应该是吧,老早以前做过,现在忘了有无返回了。

#5
一笔苍穹2006-09-13 12:45
出错了是肯定有返回的
#6
king_23454842006-09-13 13:02

我没有装虚拟DOS我是 在WINXP中的命令提示符下做的!
没有返回值
如果成功那么又为什么会出现
Linker Error:Undefined sysmbol '_EGAVGA_driver' in module REGISTER.C
错误 啊?
你能把你的QQ号码给我吗?
以便更好的交流!
谢谢!
期待你的回复!
我很着急啊 !

#7
一笔苍穹2006-09-13 13:56
WIN XP/2000下的DOS窗口就是虚DOS,与纯DOS(或实DOS)相对的,你用“ctrl+enter”可以切换到全屏模式下,再执行命令,在窗口模式下有许多程序执行完后反馈结果是看不到的。
实在不行就下个WIN-TC把里面的graphics.lib拷贝出来就行了,因为他的graphics.lib已经加入了EGAVGA.BGI了。要不干脆直接用WIN-TC就更简单了。
我已经给出很明了的解决方案了,在QQ里我也只能这么说。
#8
一笔苍穹2006-09-13 13:56

我把WIN-TC的graphic.lib传上来你下载吧:

只有本站会员才能查看附件,请 登录


QQ是:285749694
要还是不行你就加吧,我一般很少在线。

[此贴子已经被作者于2006-9-13 13:59:02编辑过]

#9
king_23454842006-09-13 18:40
非常感谢啊
!
#10
huanghongfu2010-07-21 16:19
楼主,你的第二步:II. 在E:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA   这有问题。
首先你这样写的话确定GRAPHICS和EGAVGA都在LIB文件夹下吗,
    这句命令的意思是:将文件夹LIB中的文件EGAVGA执行TLIB程序加入到GRAPHICS文件中,所以如果GRAPHICS.LIBEGAVGA.OBJ中只要有一个不在LIB文件夹中这条命令就得报废,还有先要确定TLIB.EXE程序在哪个文件夹中。这个过程并不一定要在turbo c的菜单--FILE--DOS SHELL里执行,利用开始--运行--cmd也能执行。
    我的是turbo c3.0没更改前GRAPHICS.LIB是27.5KB,执行完命令后GRAPHICS.LIB变为33.0KB
    一笔苍穹朋友我很欣赏你的助人为乐精神,但是我试过了WIN-TC中的graphic.lib文件只加入了EGAVGA.OBJ。如果改为registerbgidriver(CGA_driver);结果还是会提示:Linker Error:Undefined sysmbol '_CGA_driver' in module REGISTER.C。要彻底解决就把BGI下的所有适配器driver都加入到graphic.lib中
1