Verwenden des IBM 3514 Borland Graphics Interface -Treibers im hochauflösenden Modus im Turbo C ++ unter Windows 7 64 -Bit -Betriebssystem mit DOSBox

StackOverflow https://stackoverflow.com/questions/7808504

Frage

Ich führe ein grafisches Programm in Turbo C ++ unter Verwendung von DOSBox unter Windows 7 64 -Bit aus. Jetzt möchte ich das verwenden IBM3514 Grafiktreiber im hochauflösenden Modus (IBM3514HI). Also schrieb ich das folgende Bare Bones -Programm, um es zu testen:

#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();
}

Jetzt kompiliert und läuft das Programm ohne Fehler. Allerdings die initgraph Funktionsaufruf initialisiert den Grafikmodus nicht. Der Rückgabewert von graphresult ist 0. Daher ist kein Fehler aufgetreten. Das Programm läuft jedoch im Textmodus. Der blinkende Unterstrich ist sichtbar und das Rechteck wird nicht gezeichnet.

Ich habe meine überprüft C:\TC\BGI Ordner und der IMB3514.BGI Datei existiert. Ich gehe davon aus, dass der Grafiktreiber geladen wird. Ich kann jedoch nicht herausfinden, warum das Programm im Grafikmodus nicht ausgeführt wird oder sogar einen Fehler macht. Es funktioniert jedoch vollkommen in Ordnung, wenn ich die Standardeinstellungen verwende: int gd = DETECT, gm;

Jede Erklärung, warum mein Programm nicht funktioniert, wird sehr geschätzt. Bitte versuchen Sie, dieses Problem zu beheben. Ich würde wirklich gerne auf eine ziehen 1024x768 Bildschirm mit 256 Farben.

War es hilfreich?

Lösung

Unter Windows wird Ihr grafischer Adapter virtualisiert. Sie können nicht direkt darauf zugreifen und die spezifischen Funktionen verwenden (es sei denn, Sie verwenden DirectX/OpenGL/andere seltsame Methoden). Dosbox emuliert einige "historische" grafische Adapter für die Programme, die es ausgeführt hat (um genau zu sein: Tandy/Hercules/CGA/EGA/VGA/VESA). Sie müssen den VESA 2.0 -Treiber von TC (oder im Allgemeinen den VESA -Treiber) verwenden.

Andere Tipps

Der richtige Name des Treibers ist IBM8514.BGI - nicht "3514" und nicht "imb" oder so. Aber wie mein früherer Lautsprecher sagte, benutzen Sie einen anderen Fahrer. Die beste Wahl ist die Verwendung des Egavga.bgi -Treibers des Turbo -RESSP. Borland C ++ oder Turbo -Pascal -Paket. Dann sollten Sie sie erfolgreich zusammenstellen.
Erwarten Sie, dass Sie eine besondere Funktion dieses Fahrers benötigen. Dann müssen Sie sie von dieser Anstrengung überprüfen, wenn Sie sie benötigen. Ich denke, das Egavga.bgi, Vesa oder ein direkter Wechsel zum Grafic-Modus mit einigen speziellen Routinen, um Grafic in Dosbox, Emudos oder in allen 32-Bit-Versionen von Windows wie Windows XP oder so zu erstellen. Guenni60

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top