TC编译相关

 

initgraph初始化问题

Turbo C对于用initgraph()函数直接进行的图形初始化程序, 
在编译和链接 
时并没有将相应的驱动程序(*.BGI)装入到执行程序, 当程序进行到intitgraph() 
语句时, 
再从该函数中第三个形式参数char *path中所规定的路径中去找相应的 
驱动程序。若没有驱动程序, 则在C:/TC中去找, 
如C:/TC中仍没有或TC不存在, 
将会出现错误: 
BGI Error: Graphics 
not initialized (use 'initgraph') 
因此, 为了使用方便, 
应该建立一个不需要驱动程序就能独立运行的可执行 
图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例): 

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): 
该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。 

经过上面处理,编译链接后的执行程序可在任何目录或其它兼容机上运行。 
假设已作了前两个步骤,若再向例6中加 
registerbgidriver()函数则变成: 
例7: 

#include<stdio.h> 

#include<graphics.h> 

int main() 


int gdriver=DETECT,gmode; 


registerbgidriver(EGAVGA_driver): / *建立独立图形运行程序 */ 

initgraph( gdriver, 
gmode,"c://tc"); 

bar3d(50,50,250,150,20,1); 

getch(); 
closegraph(); 

return 0; 


上例编译链接后产生的执行程序可独立运行。 

如不初始化成EGA或CGA分辨率, 而想初始化为CGA分辨率, 则只需要将上述 
步骤中有EGAVGA的地方用CGA代替即可。

 

方法二:

tc20目录下的*.bgi文件拷贝到你的c程序目录中即可通过。当然你用进行图形化操作,看你选用哪中模式了,cga,ega,vga等,他们都对应某个.bgi文件,当然如果你不知道的话,将所有的.bgi文件拷过去即可!

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值