| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1185 人关注过本帖
标题:求教一个关于c语言绘图能独立运行的问题
只看楼主 加入收藏
踏歌
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2009-10-10
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:1 
求教一个关于c语言绘图能独立运行的问题
使用TC2编辑代码,运行编译后的可执行文件,在其他电脑上无法正常显示


最多的方法是:
      1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
      此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
      2. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
      此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。
      3. 在程序中initgraph()函数调用之前加上一句:
         registerbgidriver(EGAVGA_driver);

但是我操作不成功,第一步,第二步没问题,不过,第三步我解决不了。
registerbgidriver(EGAVGA_driver);
这句放到程序里,就会出现错误,提示说:EGAVGA_driver是未定义的符号。
该怎么办啊?请教高手解答,谢谢不知道是什么原因?
麻烦高手来指导下,谢谢~!!!
搜索更多相关主题的帖子: 运行 绘图 c语言 
2009-10-10 07:21
na_1421
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-5
收藏
得分:0 
先确保Options—Linker—Graphics library选项为on.
    在initgraph()调用之前我们调用 registerbgidriver(EGAVGA_driver);这样就自动加载了驱动程序。有一点要注意:在使用这个功能之前,必须确保EGAVGA.BGI已经加载在graphics.lib之中。(如果前面的问题已经解决就说明已经加载了)如果没有加载,如要按照以下的方法进行加载。
    1在TC下找到BGIOBJ.exe这个程序,并找到EGAVGA.BGI这个文件,把EGAVGA.BGI这个文件复制到与BGIOBJ.exe同一目录下,
               2 执行:BGIOBJ EGAVGA(把bgi转换成obj)
               3再执行:TLIB LIB\GRAPHICS.LIB+EGAVGA(加载到lib中)   即可。
         (PS:对2、3步骤进行说明,这些都是DOS命令,在windows下,可以按Win+R打开运行窗口,输入cmd,确定就出现一个虚拟DOS黑窗口,然后手工输入命令CD /D C:\TC再输入第1条BGIOBJ EGAVGA即可。第2条也是一样的。
因为TC是1988年的东西,(没办法太经典了所以流传了20年!!!),那个时候个人电脑是DOS操作系统占据天下的,单任务,全英文,黑窗口输入命令来执行操作的。)
图解:
网络上到处都是解决的方法,但是对我我们这一代从未接触过DOS的新青年,或许会很茫然,就像我。按照书上介绍一共就3步即可解决问题,但是真正让我搞不明白的就是前2步,经过一系列的瞎折腾终于搞明白了。详细解决方法如下
       按照书上说的步骤一共有下面3步
     1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA      此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。      2. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA      此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。      3. 在程序中initgraph()函数调用之前加上一句:         registerbgidriver(EGAVGA_driver);
现在解释第一步1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
        我先介绍一下我的TC位置,位于E:\TC20H这里是我的TC2.0所在的位置,而在上面1,2步中要用到的文件分别位于E:\TC20H\BGI\EGAVGA.BGI和E:\TC20H\LIB\GRAPHICS.LIB
如果以上一些准备就需就按照我的步骤开始进行
首先开始->运行->cmd->e:(我的TC所在的硬盘位置,根据自身情况修改)->CD TC20H(CD是打开文件夹的意思,TC20H是我的TC2.0的文件夹名称)->cd BGI

1. 在E:\TC20H\BGI子目录 下输入命令:BGIOBJ EGAVGA
在运行上面命令之前一定要确认EGAVGA.BGI就在E:\TC20H\BGI文件夹中(根据自身情况确认,以后不做提示)运行完上面第一步之后会发现在此文件夹中多出一个EGAVGA.OBJ文件,将此文件放到E:\TC20H文件夹下,以便后面操作
2. 在E:\TC20H子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA 再输入以上命令之前一定要确保在E:\TC20H有EGAVGA.OBJ文件,就是第一步操作生成的文件,然后根据自身情况修改LIB\GRAPHICS.LIB路径位置,注意现在的输入命令为止一定要在E:\TC20H中,要退出E:\TC20H\BGI这个文件夹LIB\GRAPHICS.LIB其实就是E:\TC20H\LIB\GRAPHICS.LIB此文件的位置由于现在为止已经在E:\TC20H中所以只需输入LIB\GRAPHICS.LIB就成然后再运行
3. 在程序中initgraph()函数调用之前加上一句:          registerbgidriver(EGAVGA_driver);
用程序来解释吧
#include<stdio.h>#include<graphics.h>main(){int gdriver=DETECT,gmode;registerbgidriver(EGAVGA_driver);initgraph(&gdriver,&gmode,"e:\\TC20H\\BGI");bar3d(50,50,250,150,20,1);
getch();}
大家试验一下看看书出了个什么图形,如果成功请留言!~
另外还有一个位置需要注意一下,经过实验发现当把生成的EGAVGA.OBJ文件放到根目录时,需要重新运行CMD不然会提示
'TLIB' is not recognized as an internal or external command operable program or bath file
反应异常的人很多 我有试验了一下第2步 下面2张截图就是我的实验过程,第2张石按回车时候的图样


我实在不明白各位是为什么错误???我的就可以呢我想来想去 只可能是这一句话出现问题了
TLIB LIB\GRAPHICS.LIB+EGAVGA TLIB 这个是必须加的 后面的LIB\GRAPHICS.LIB+EGAVGA 的意思是这样的 ‘+’前后其实就是2个文件所在的地址 由于此时的位置已经在E:\TC20H所以这2个文件之前不用再加E:\TC20H,LIB\GRAPHICS.LIB其实就是位于E:\TC20H\LIB\GRAPHICS.LIB下的文件或许大家是LIB的地方错了这只是猜测,只要保证GRAPHICS.LIB位置正确即可,不用关心是不是在LIB下 如果在AA下那就换成E:\TC20H\AA\GRAPHICS.LIB
我之所以让大家把EGAVGA .OBJ是为了方便操作这样‘+’后面直接输入EGAVGA 即可,就不用输入目录文件了,同样的道理,如果EGAVGA 在别的目录下面也要输入目录名
2010-06-05 21:34
快速回复:求教一个关于c语言绘图能独立运行的问题
数据加载中...
 
   



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

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