Utilizzando il driver IBM 3514 Borland Graphics Interface in modalità ad alta risoluzione in Turbo C ++ su Windows 7 a 64 bit del sistema operativo usando DosBox
-
26-10-2019 - |
Domanda
Sono in esecuzione un programma grafico in Turbo C ++ utilizzando DosBox su Windows 7 a 64 bit. Ora, voglio usare il driver grafico IBM3514
nella modalità ad alta risoluzione (IBM3514HI
). Così, ho scritto il seguente programma ossa nude per testarlo:
#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();
}
Ora, le compilazioni programma ed esegue senza errori. Tuttavia, la funzione di chiamata initgraph
non inizializza modalità grafica. Il valore di ritorno di graphresult
è 0
. Quindi, si è verificato alcun errore. Eppure, il programma viene eseguito ancora in modalità testo. La sottolineatura lampeggiante è visibile e il rettangolo non viene disegnato.
ho controllato la mia cartella C:\TC\BGI
ed esiste il file IMB3514.BGI
. Così presumo che non caricare il driver grafico. Eppure, non riesco a capire perché il programma non esegue in modalità grafica, o anche lanciare un errore. Tuttavia funziona perfettamente bene se uso le impostazioni di default: int gd = DETECT, gm;
Ogni spiegazione sul motivo per cui il mio programma non funziona sarà molto apprezzato. Si prega di cercare di fornire una soluzione a questo problema. Mi piace molto disegnare su uno schermo 1024x768
con colori 256
.
Soluzione
In Windows scheda grafica è virtualizzato. Non è possibile accedere direttamente e utilizzare le sue caratteristiche specifiche (a meno che non si utilizza DirectX / OpenGL / altri metodi strani). DOSBox emula alcune schede grafiche "storici" per i programmi che corre (per la precisione: Tandy / Hercules / CGA / EGA / VGA / VESA). È necessario utilizzare il driver VESA 2.0 di TC (o, in generale, il driver VESA).
Altri suggerimenti
il modo corretto nome del driver è ibm8514.bgi - non è "3514" e non "IMB" o giù di lì. Ma come il mio precedente oratore ha detto, meglio si utilizza un altro driver. La scelta migliore è quella di utilizzare il driver egavga.bgi del resp Turbo. Borland C ++ o pacchetto Turbo Pascal. Poi si dovrebbe compilare loro successo.
Aspettatevi hai bisogno di una caratteristica speciale di questo driver. Poi si deve verificare di questo sforzo, se ne avete bisogno. Penso che l'egavga.bgi, vesa o passare direttamente alla modalità grafica con alcune routine speciali per rendere grafic dovrebbe funzionare in DOSBox, EmuDOS o in tutto a 32-Bit-versione di Windows come Windows XP o giù di lì. Guenni60