Turbo C 对于用intitgraph()函数直接进行的图形初始化程序,在编译和链接时并没有将相应的驱动程序(*.BGI)装入到执行程序,当程序进行到intitgrapth()语句时,再从该函数中第三个形式参数char*path中所规定的路径中去找相应的驱动程序。若没有驱动程序,则在C:\TC中去找,如果C:\TC中仍然没有TC或TC不存在,则将会出现错误:
BGI Error:Graphics not initialized(use 'initgrapth')因此,为了使用方便,应该建立一个不需要驱动程序就能独立运行的可执行图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例):
1.在C:\TC 子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
2.在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHIC.LIB库文件中。registerbgidriver(EGAVGA_driver):
该函数告诉连接程序在链接时把EGAVGA的驱动程序装入到用户的执行程序中。经过上面的处理,编译链接后的执行程序可以在任何目录或其他兼容机上运行。假设已做了前两个步骤,再向程序中加入registerbgidriver()函数,则程序可以变成:/* 原程序(无法使用initgrapth进行初始化): */