Использование драйвера графического интерфейса IBM 3514 Borland в режиме высокого разрешения в Turbo C ++ в 64-битной ОС Windows 7 с использованием DosBox - PullRequest
1 голос
/ 18 октября 2011

Я использую графическую программу в Turbo C ++ с использованием DosBox в 64-разрядной версии Windows 7.Теперь я хочу использовать графический драйвер 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 цветами.

Ответы [ 2 ]

4 голосов
/ 18 октября 2011

Под Windows ваш графический адаптер виртуализирован.Вы не можете получить к нему доступ напрямую и использовать его специфические функции (если вы не используете DirectX / OpenGL / другие странные методы).DOSBox эмулирует некоторые «исторические» графические адаптеры для программ, которые он запускает (точнее: Tandy / Hercules / CGA / EGA / VGA / VESA).Вы должны использовать драйвер VESA 2.0 от TC (или вообще драйвер VESA).

1 голос
/ 23 сентября 2015

Правильно. Имя драйвера - ibm8514.bgi, а не «3514» и не «imb» или около того.Но, как сказал мой предыдущий оратор, лучше использовать другой драйвер.Наилучшим выбором является использование egavga.bgi Driver of Turbo соответственно.Пакет Borland C ++ или Turbo Pascal.Затем вы должны скомпилировать их успешно.
Ожидайте, что вам нужна особая функция этого драйвера.Затем вы должны проверить их в этом усилии, если они вам нужны.Я думаю, egavga.bgi, vesa или прямой переход в режим графического отображения с некоторыми специальными подпрограммами для создания графического интерфейса должны работать в DOSBox, EmuDOS или во всех 32-битных версиях Windows, таких как Windows XP или около того.Guenni60

...