C语言怎样初始化图形模式?

一、问题

在C语⾔中,initgraph( ) 函数⽤于初始化图形模式。初始化时,那么多参数都是⼲什么的?怎样设置?

二、解答

initgraph( ) 函数⽤于初始化图形模式,其语法格式如下。

cpp 复制代码
void far initgraph(int far * gdriver, int far *gmode,char *path);

其中,gdriver 和 gmode 分别表⽰图形驱动器和图形模式;path 是指图形驱动程序所在的⽬录路径。图形驱动程序枚举常量如下(打开 graphics.h 即可找到):

cpp 复制代码
enum graphics_drivers
{
    DETECT,
    CGA,
    MCGA,
    EGA,
    EGA64,
    EGAMONO,
    IBM8514,
    HERCMONO,
    ATT400,
    VGA,
    PC3270,
    CURRENT_DRIVER = -1
};

有关图形驱动器、图形模式的符号常数及对应的分辨率如表所示(打开 graphics.h 即可找到)。

图形驱动程序由 Turbo C 出版商提供,⽂件扩展名为.BGI。针对不同的图形适配器, 有不同的图形驱动程序可供调⽤。例如,对于 EGA、 VGA 图形适配器将调⽤驱动程序EGAVGA.BGI。例如:

cpp 复制代码
int driver=VGA,mode=VGAHI;
initgraph(&driver,&mode,"");

即将屏幕驱动程序初始化为 VGA,图形模式初始化为 VGAHL。也许有的读者会问:"这 么多驱动程序,我怎么知道我的电脑是什么驱动程序呀?" ⼀般来说,⼀个显示卡⽀持以上多种驱动程序。此外,还可以使⽤ DETECT测试你的电脑是什么驱动程序。

程序写成:

cpp 复制代码
int driver=DETECT,mode;
initgraph(&DETECT,&mode,"");

就可以了。 还可以⽤ detectgraph 函数检测,对应程序如下。

cpp 复制代码
int driver,mode;
detectgraph(&driver,&mode) initgraph(&DETECT,&mode,"");

initgraph( ) 的第三个参数 path 是图形驱动程序的路径,即告诉程序到哪⾥能找到 .BG1 ⽂件。有些 TC 软件将其存放在 TC 安装⽬录下,有些则是在TC 安装⽬录的⼦⽬录 BGI 下,⾃⼰找到 TC 的安装位置看⼀下就知道了。该参数设置为空⽩字符串时,系统⾸先在程序执⾏时的当前⽬录下查找,不存在时再到 C:\TC ⽬录下寻找,如果都找不到,则会显 示如下错误信息。

cpp 复制代码
BGI Error: Graphics not initialized (use 'initgraph')

三、总结

屏幕初始化是开发图形程序的第⼀步。各种参数设置,只要记住测试⽅式,基本上就可以完成所有初始化⼯作。⼤部分的图形驱动测试结果是 VGA,模式是 VGAHI, 16 ⾊,640*480 分辨率。

相关推荐
冬夜戏雪25 分钟前
agent的trace 和eval
开发语言·前端·javascript
Sagittarius_A*30 分钟前
Burst Lab | PHP 审计 13|反序列化(三):POP 链构造与 Gadget Chain 分析
开发语言·web安全·php·代码审计·反序列化
职场的momo1 小时前
11个后端与AI岗位同时开放:Java、网关、推理优化怎么匹配
java·开发语言·人工智能
蓝速科技1 小时前
蓝速科技丨新旧楼宇混杂场景下会议室预约门牌屏一体化改造方案
开发语言·科技·php
梦想的旅途22 小时前
Python实现企业微信文本消息发送
开发语言·python·企业微信
大鹏说大话2 小时前
美业微信会员系统哪个好
开发语言
程序员与背包客_CoderZ3 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb
钱栈up3 小时前
Mac 开发机一键发版不用切环境:我这样改造了团队的后端部署脚本Maven编译卡住20分钟?我靠两步定位到2处隐蔽编译错误
开发语言·python·macos
william_yangshun3 小时前
【大模型部署实战】kimi-k3-in-c 中文版:用 176KB 纯 C99 引擎在 CPU 上跑 Kimi K3 上手指南
c语言·开发语言
Sagittarius_A*3 小时前
Burst Lab | PHP 审计 14|反序列化(四):字符串逃逸与绕过技巧
开发语言·安全·php·web·反序列化