Я запускаю графическую программу на 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
цветами.