C语言中独立图形程序的建立!!
2007-09-06 21:27
211 查看
Turbo C/C++ 对于用initgraph()函数进行图形初始化,编译和连接时并不将相应的图形驱动程序(*.BGI,现在通常是EGAVGA.BGI)装载入程序。导致的结果就是:当编译连接好的程序在其他目录下运行的时候,系统就会提示找不到显示驱动程序(一般来说提示的窗口会一闪而过,所以基本上什么也看不到)
虽然我们可以搜到很多信息,但大多不详细,让初次接触c图行编程的有点不知所措!
我试着做了一下,所以把步骤写了下拉!!
解决的办法就是把图形驱动装载入程序,步骤如下:
我装的是Turbo C/C++3.0,以下以此为例:
1、 在命令行环境下,打开安装文件TCPP30H/BGI的文件夹,用BGIOBJ.EXE把EGAVGA.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.EXE把EGAVGA.OGJ模块装入GRAPHICS.LIB中;
TLIB.EXE在TCPP30H/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;
}
虽然我们可以搜到很多信息,但大多不详细,让初次接触c图行编程的有点不知所措!
我试着做了一下,所以把步骤写了下拉!!
解决的办法就是把图形驱动装载入程序,步骤如下:
我装的是Turbo C/C++3.0,以下以此为例:
1、 在命令行环境下,打开安装文件TCPP30H/BGI的文件夹,用BGIOBJ.EXE把EGAVGA.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.EXE把EGAVGA.OGJ模块装入GRAPHICS.LIB中;
TLIB.EXE在TCPP30H/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;
}
相关文章推荐
- C下图形模式的初始化、独立图形程序的建立
- C下图形模式的初始化、独立图形程序的建立
- C语言的图形界面?——简单外挂程序
- C语言编写图形程序// http://lcrystal.spaces.live.com/blog/cns!13dfc6235bbfb72c!128.entry
- 让TC图形程序脱离 *.BGI 而独立运行的办法
- C语言编写图形程序// http://lcrystal.spaces.live.com/blog/cns!13dfc6235bbfb72c!128.entry
- 让C/C++图形程序独立运行
- 让C/C++图形程序独立运行
- 使用C语言来写一个动态图形程序(像万花筒)(参考了网络上的名为细胞游戏的文章)
- 让C/C++图形程序独立运行
- 建立独立的OSG程序
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- 要复制就能用的 谢谢有急用 要求200行左右 有代码 在c语言的环境下编一个运动的图形程序
- C# 两个独立exe程序直接通信
- 用程序来自动建立FTP帐号(serv-u的odbc设置) (转)
- 使用wxPython图形库实现简单计算器的小程序
- 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
- 第2周 《C语言及程序设计》程序——输出小星星
- VS 2010 测试功能学习(20) - 建立手工测试用例参数和被测试程序控件的绑定(转)
- c语言小程序