![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-01 19:40 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,249 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » [求助] 获取VESA版本信息 |
| 可打印版本 1,218 / 2 |
| 第1楼 liutao2008 | 发表于 2006-11-08 10:06 |
| 新手上路 发帖 3 积分 9 | |
|
[求助] 获取VESA版本信息 各位大侠::D
我现在是要在DOS下实现获取VESA版本信息,一直取不成功。 各位大侠,谁有相应的例子,给提供一个。谢谢了 :D |
|
| 第2楼 zyl910 | 发表于 2006-11-08 21:35 |
| 中级用户 发帖 126 积分 282 | |
|
/* VESA 信息块 */
typedef struct tagVBE_INFO { char VbeSignature[4]; /* VESA标志: 'VESA', 'VBE2' */ WORD VbeVersion; /* VESA 版本号 */ char far *OemStringPtr; /* 制造商字串指针 */ DWORD Capabilities; /* 视频显示能力 */ WORD far *VideoModePtr; /* 扩展显示模式集指针 */ WORD TotalMemory; /* 显示卡显存,单位为64KB*/ /*VBE 2.0*/ WORD OemSoftwareRev; /*VBE软件的OEM修订版本号*/ char far *OemVendorNamePtr; /*指向显示卡制造厂商的字符串指针*/ char far *OemProductNamePtr; /*指向显示卡产品名称的字符串指针*/ char far *OemProductRevPtr; /*指向显示卡修订版本号或产品等级的字符串指针*/ BYTE reserved[222]; /*保留*/ BYTE OemData[256]; }VBE_INFO; VBE_INFO vbeinfo; memchr(&vbeinfo, 0, sizeof(vbeinfo)); _ES = FP_SEG(&vbeinfo); _DI = FP_OFF(&vbeinfo); _AX = 0x4F00; geninterrupt(0x10); rc = _AX; if (rc != 0x004F) { printf("Status(%4.4X): ", rc); PrintVBEError(stdout, rc); printf("\n"); printf("VBE is not exist!\n"); return 1; } PrintVBEINFO(stdout, &vbeinfo); |
|
| 第3楼 liutao2008 | 发表于 2006-11-09 12:22 |
| 新手上路 发帖 3 积分 9 | |
|
请问你使用的什么编译器?
我用的watcom c\c++,上面的代码编不过。 另外,如果在386保护模式下用32位的方式如何取信息呢? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |