C语言中独立图形程序的建立!!

Turbo C/C++ 对于用initgraph()函数进行图形初始化,编译和连接时并不将相应的图形驱动程序(*.BGI,现在通常是EGAVGA.BGI)装载入程序。导致的结果就是:当编译连接好的程序在其他目录下运行的时候,系统就会提示找不到显示驱动程序(一般来说提示的窗口会一闪而过,所以基本上什么也看不到)

      虽然我们可以搜到很多信息,但大多不详细,让初次接触c图行编程的有点不知所措!

   我试着做了一下,所以把步骤写了下拉!!

      解决的办法就是把图形驱动装载入程序,步骤如下:

  我装的是Turbo  C/C++3.0,以下以此为例:

1、  在命令行环境下,打开安装文件TCPP30H/BGI的文件夹,用BGIOBJ.EXEEGAVGA.BGI编译为EGAVGA.OBJ

命令为:BGIOBJ   EGAVGA.OBJ

  再接着输入如下的命令:(这步可以先不做,若所有步骤都做完,程序还不能运行再做也可)

   *.CHR转换成OBJ文件:

C:/Program Files/TCPP30H/BGI/ BGIOBJ   EGAVGA(这步上边已经说过了,这可不是让输两次)

                                                           ...../BGIOBJ  TROP.CHR

                                                           ..../BGIOBJ   TRIP.CHR

                                                                   ...../BGIOBJ   LITT.CHR

                                                                    ...../BGIOBJ   SANS.CHR

                                                    ...../BGIOBJ   GOTH.CHR

        经过以上步骤后,有六个OBJ文件生成到BGI文件夹下。

2、  TLIB.EXEEGAVGA.OGJ模块装入GRAPHICS.LIB中;

   TLIB.EXETCPP30H/BIN中,为方便起见,可把TLIB.EXE拷出来,放到和BGI同一个目录下;

命令为:TLIB GRAPHICS.LIB+EGAVGA.OBJ

如下图:(图片无法显示)

具体形式是:

 C:/Program Files/TCPP30H>C:/Program Files/TCPP30H>TLIB LIB/GRAPHICS.LIB+BGI/EGAVGA

         ....>TLIB LIB/GRAPHICS.LIB+BGI/TROP

....

与上一步一样,进行六步操作! 

 

 

3、  initgraph()函数前加入registerbgidriver(EGAVGA_driver);函数。

      registerbgidriver(EGAVGA_driver);  

 initgraph(&gdriver,&gmode,"C://Program Files//TCPP30H//BGI");

 

  这样图形驱动就可以在编译连接时装载入程序,使得程序可以独立于*.BGI的驱动而运行。

附一测试程序:

//test.h可以作为测试,程序运行后会出现一个长方体。

     #include<stdio.h>

           #include<graphics.h>    

            int   main()    

            {    

                    int gdriver=DETECT,gmode;    

                    registerbgidriver(EGAVGA_driver);  

                       initgraph(&gdriver,&gmode,"C://Program Files//TCPP30H//BGI");

//     路径是EGAVGA.BGI的路径;

                    bar3d(150,150,550,150,20,1);    

                    getch();    

                    closegraph();    

                    return   0;    

            }    

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值