(转)BGI Error:Graphics not initialized (use 'initgraph')真正详解

网络上到处都是解决的方法,但是对我我们这一代从未接触过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.BGIE:/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 在别的目录下面也要输入目录名。上面的东西是转载的。经过一个小时的郁闷,终于弄成功了,实验证明,按照上面描述的做,最后运行结果是一个长方体,靠外的面是白色的。   在按照上面的做的时候依旧出现了很多问题,也学到了些东西。

1.tlib 这个命令很重要,我用的是颖思汉化的TC,一开始不知道这是TC中的一个命令,就糊里糊涂的按照上面的tlib输入,结果肯定出错,又百度了下tlib,才知道它是一个TC命令,具体作用在本空间的另一篇文章中有详细介绍。 我的tlib.exe在bin目录下,为了使这个命令在DOS中可用,就把tlib.exe复制到和tc文件夹下,然后再设置下环境变量,然后在按照上面的步骤操作。

此步操作后,为了验证是否正确。就把上面的程序输入并且ctrl+F9运行了一下,嗯,终于成功了,出现了一个长方体。   不过我在操作中没有出现上面所说的“需要重新运行CMD不然会提示……”,也就是我,我是一个cmd框直接下来的,并没有重新运行cmd。

2,需要注意的是:操作的时候需要对照自己的目录。把上面需要改的地方改一下。

下面是我实验的步骤截图:输入BGIOBJ EGAVGA

 

下面输入TLIB LIB/GRAPHICS.LIB+EGAVGA后出现的。

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值