gpt4 book ai didi

c++ - 在 Windows 7 64 位操作系统上使用 DosBox 在 Turbo C++ 中以高分辨率模式使用 IBM 3514 Borland 图形接口(interface)驱动程序

转载 作者:行者123 更新时间:2023-12-02 15:40:19 25 4
gpt4 key购买 nike

我在 Windows 7 64 位上使用 DosBox 在 Turbo C++ 中运行图形程序。现在,我想在高分辨率模式下使用 IBM3514 图形驱动程序 (IBM3514HI)。因此,我编写了以下基本程序来测试它:

#include <graphics.h>
#include <iostream.h>

void main() {
int gd = IBM3514, gm = IBM3514HI, e;
initgraph(&gd, &gm, "C:\\TC\\BGI");
if (e = graphresult()) {
cout << grapherrormsg(e);
}
cleardevice();
rectangle(100, 100, 300, 300);
cin.get();
closegraph();
restorecrtmode();
}

现在,程序编译并运行没有任何错误。但是,initgraph 函数调用不会初始化图形模式。 graphresult 的返回值为0。因此,没有发生错误。然而,该程序仍然以文本模式运行。闪烁的下划线可见,未绘制矩形。

我检查了我的 C:\TC\BGI 文件夹,IMB3514.BGI 文件存在。因此我假设它确实加载了图形驱动程序。然而,我无法弄清楚为什么程序不在图形模式下执行,甚至抛出错误。但是,如果我使用默认设置,它工作得很好:int gd = DETECT, gm;

如能解释我的程序为何无法运行,我们将不胜感激。请尝试解决此问题。我真的很想在 1024x768 屏幕上用 256 颜色绘图。

最佳答案

在 Windows 下,您的图形适配器是虚拟化的。你不能直接访问它并使用它的特定功能(除非你使用 DirectX/OpenGL/其他奇怪的方法)。 DOSBox 为它运行的程序模拟了一些“历史”图形适配器(准确地说:Tandy/Hercules/CGA/EGA/VGA/VESA)。您必须使用 TC 的 VESA 2.0 驱动程序(或通常的 VESA 驱动程序)。

关于c++ - 在 Windows 7 64 位操作系统上使用 DosBox 在 Turbo C++ 中以高分辨率模式使用 IBM 3514 Borland 图形接口(interface)驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7808504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com