为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下,这个函数的参数&gm,是怎么回事?有时是graphmode,有时是gmode

请问一下,这个函数的参数&gm,是怎么回事?有时是graphmode,有时是gmode

C
慕村225694 2023-04-20 19:15:45
我见到这个函数在一个程序上是这么写来初始化图形系统的void init(void){int gd=DETECT,gm;initgraph (&gd,&gm,"c:\\tc");cleardevice ();}
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

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代替即可。


查看完整回答
反对 回复 2023-04-23
?
墨色风雨

TA贡献1853条经验 获得超6个赞

initgraph()
功 能: 初始化图形系统
函数原型: void far initgraph(int far *graphdriver, int far *graphmode,
char far *pathtodriver);
头文件:graphics.h
程序示例
#include "graphics.h"
#include "stdio.h"

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;

/* initialize graphics mode */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode= graphresult();

if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}

/* draw a line */
line(0, 0, getmaxx(), getmaxy());

/* clean up */
getch();
closegraph();
return 0;


查看完整回答
反对 回复 2023-04-23
  • 2 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信