Utilisation du pilote d'interface graphique Borland IBM 3514 en mode haute résolution Turbo C ++ sur Windows 7 OS 64 bits en utilisant DOSBox

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

Question

J'exécution d'un programme graphique en Turbo C ++ en utilisant DosBox sur Windows 7 64 bits. Maintenant, je veux utiliser le pilote graphique IBM3514 en mode haute résolution (IBM3514HI). Alors, je l'ai écrit le programme des os nus suivants pour le tester:

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

Maintenant, les compiles de programme et fonctionne sans aucune erreur. Toutefois, l'appel de la fonction initgraph n'initialise pas le mode graphique. La valeur de retour de graphresult est 0. Par conséquent, aucune erreur est survenue. Pourtant, le programme fonctionne toujours en mode texte. Le trait de soulignement clignotant est visible et le rectangle est pas dessiné.

J'ai vérifié mon dossier C:\TC\BGI et le fichier IMB3514.BGI EXISTE. Ainsi, je suppose qu'il ne charge le pilote graphique. Et pourtant, je ne peux pas comprendre pourquoi le programme n'exécute pas en mode graphique, ou même une erreur. Cependant, il fonctionne parfaitement bien si j'utilise les paramètres par défaut: int gd = DETECT, gm;

Tout expliquer pourquoi mon programme ne fonctionne pas sera grandement appréciée. S'il vous plaît essayer de fournir une solution à ce problème. Je voudrais vraiment dessiner sur un écran 1024x768 avec des couleurs 256.

Était-ce utile?

La solution

Sous Windows adaptateur graphique est virtualisé. Vous ne pouvez pas y accéder directement et utiliser ses fonctionnalités spécifiques (sauf si vous utilisez DirectX / OpenGL / autres méthodes étranges). DOSBox émule certains "historiques" des cartes graphiques pour les programmes qu'il exécute (pour être précis: Tandy / Hercules / CGA / EGA / VGA / VESA). Vous devez utiliser le pilote VESA 2.0 de TC (ou en général le pilote VESA).

Autres conseils

correctement le nom du pilote est ibm8514.bgi - pas « 3514 » et non « IMB » ou si. Mais comme mon orateur précédent, mieux que vous utilisez un autre pilote. Le meilleur choix est d'utiliser le pilote egavga.bgi du Turbo resp. Borland C ++ ou package Turbo Pascal. Ensuite, vous devez les compiler avec succès.
Attendez-vous besoin d'une caractéristique particulière de ce pilote. Ensuite, vous devez les vérifier de cet effort si vous en avez besoin. Je pense que le egavga.bgi, vesa ou passer directement au mode Grafic avec quelques routines spéciales pour faire Grafic devrait fonctionner dans DOSBox, EmuDOS ou dans les 32 bits-version de Windows comme Windows XP ou plus. Guenni60

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top