IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment programmer sous dos ?


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut Comment programmer sous dos ?
    Je voudrais créer un logiciel fonctionnant sous dos en mode 80x25x16 couleurs, je crois que ont doit utiliser les int du bios pour cela, mais comment s'en servir sous c++ ? est-ce que je dois faire du asm ?

    Je voudrais pouvoir:
    m'assurer que mon écran est en 80x25x16
    écrire du texte à l'écran dans les couleurs que je veux. même avec du fond, comme par exemple blanc clair sur fond bleu.
    pouvoir changer l'apparence du curseur, le faire disparaitre aussi.

    bref, pouvoir faire tout ce qui est possible coté graphique en dos, mais avec du 80x25

    Question: est-ce qu'un programme dos est toujours obligé de se retrouver dans une fenetre de commande windows ou si on peut "forcer" le programme a ne s'afficher qu'en plein écran ?

    Ou si il y aurait moyen de mettre la fenetre dos windows en plein écran ?

    merci

  2. #2
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    bon je suis pas sure du tout, mais il me semble qu'avec les dernieres version de windows tu ne peux plus avoir du dos en plein ecran a moins de redemarrer specifiquement en mode dos ou alors avec une disquette de demarrage.

    Le dos est maintenant plus considéré comme un shell que comme un OS a part. Je ne suis meme plus sur que windows soit basé sur dos (ce qui etait le cas dans les anciennes versions) et il me semble que tu ne pourras pas utiliser MSDOS seul (c'est a dire sans ouvrir une fenetre depuis windows) si ton disque dur est en NTFS.

    Maintenant je pense que tu devrais attendre que quelqu'un qui en connait plus sur le sujet confirme ou infirme ce que je viens de dire

    XXiemeciel
    XXiemeciel

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Enfin, tu peux toujours faire alt+entrée sur un programme DOS (à supposer qu'il marche) ou Win32 console...

    Sur touts les programmes que j'avais fais sous DOS à l'époque, les appels à la librairie standard marchent toujours, mais les semi-graphiques en mode console (programmes qui utilisent le truc du segment B800) ne marchent pas (sauf un, et j'ai l'impression que la seule différence qu'il avait avec les autres, c'est qu'il appelle une fonction du compilo microsoft ( _getvideoconfig() ) avant de s'amuser à tripoter l'écran...


    Bref, ça dépend des programmes, et des compilos DOS utilisés (Borland C++ pour DOS, Microsoft QuickC...)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Faut pas confondre DOS et console. Une console Windows fait 80x25x16, et tu peux changer la couleur via les bonnes fonctions (SetConsoleTextAttribute...). Mais tu auras bien programme Win32.
    Si tu fais un programme DOS, 16 bits, faut manipuler le BIOS VGA (int 10h) ou bien écrire là où il faut en mémoire VGA.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    ok

    mais dans quel lib sont les fonctions SetConsoleTextAttribute, .. ?

    je ne sais pas encore quel compilateur utiliser, j'avais pensé à gcc

    donc je pourrais faire un programme win32, c'était plus ça mon idée que du "vrai" dos Mais tout en restant en 80x25x16

    Ou ce que j'avais pensé aussi c'était "émuler" du 80x25x16 en faisant une fenetre windows au fond noir et en affichage les caractères de la table ascii selon une échelle précise qui seraient stocké dans des fichiers bmp.

    Qu'en pensez-vous ?

    Sauf que je me demande, un caractere a combien de pixel en hauteur et en largeur sous dos ? pour pouvoir transposer cela aux bonne dimensions sur une résolution de 1024x768 pour que cela puisse arriver à faire 80 colonnes par 25 :

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 34
    Points : 40
    Points
    40
    Par défaut
    Le plus simple pour t'amuser est de télécharger le compilateur Turbo C++ 1.0 de Borland (tu trouveras le lien sur le site). Ensuite, après l'avoir installé, ouvre l'aide et fait une recherche sur "graphics.h". Tu vas y trouver toute une série de fonctions qui te permettront de créer un programme graphique sous DOS, de manière très simple (il suffit de consulter les exemples fournis avec l'aide).

    Seuls impératifs:

    - Passer en mode plein écran (appui sur ALT+ENTREE),
    - Bien indiquer le chemin des fichiers BGI.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par AsmCode
    mais dans quel lib sont les fonctions SetConsoleTextAttribute, .. ?
    Win32, donc <windows.h> et kernel32.lib. N'importe quel compilo Win32 permet de l'utiliser.
    je ne sais pas encore quel compilateur utiliser, j'avais pensé à gcc
    Y'a VC++ 2005 aussi, gratuit (version express)

    donc je pourrais faire un programme win32, c'était plus ça mon idée que du "vrai" dos Mais tout en restant en 80x25x16

    Ou ce que j'avais pensé aussi c'était "émuler" du 80x25x16 en faisant une fenetre windows au fond noir et en affichage les caractères de la table ascii selon une échelle précise qui seraient stocké dans des fichiers bmp.

    Qu'en pensez-vous ?
    ben c'est très dur à faire, et surtout c'est déjà fait par Windows. Alors à quoi bon. Le seul truc c'est qu'il permet de redimensionner en hauteur.

    Sauf que je me demande, un caractere a combien de pixel en hauteur et en largeur sous dos ? pour pouvoir transposer cela aux bonne dimensions sur une résolution de 1024x768 pour que cela puisse arriver à faire 80 colonnes par 25 :
    La console Windows gère le mode plein écran (ALT+ENTREE). L'affichage est alors basculé en mode texte, 80x25x16, le même qu'au boot du PC. Le texte est géré par la carte graphique, comme sous DOS. C'est la même chose. On peut basculer en plein écran via le code (sous NT, avec SetConsoleDisplayMode).

    graphics.h et bgi, c'est du DOS 16 bits, avec le très vieux Turbo C++, bien loin du standard, que personnelement je te déconseille pour faire du C++.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Pour dessiner sur la console, je déconseile la version SetConsoleTextAttribute() + écriture, car elle buggue dès que la console commence à scroller (au bout de 300 lignes, par défaut, sous XP).

    Pour pouvoir écrire librement de n'importe quelle couleur sur la console, je conseille WriteConsoleOutput().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Merci

    Je vais commencer par cela, si j'ai d'autres questions, je reviendrai les poser

Discussions similaires

  1. comment programmer sous word?
    Par sebac dans le forum VBA Word
    Réponses: 0
    Dernier message: 29/07/2009, 11h13
  2. Problème d’appel d’un programme sous dos
    Par dot-_-net dans le forum C
    Réponses: 8
    Dernier message: 15/11/2007, 12h23
  3. [VB.NET] COmment compiler sous DOS
    Par olbi dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/06/2007, 11h26
  4. [Débutant] Lancer un programme sous DOS
    Par snipre dans le forum MATLAB
    Réponses: 4
    Dernier message: 25/05/2007, 15h22
  5. programmer sous dos
    Par AsmCode dans le forum C++
    Réponses: 2
    Dernier message: 28/11/2005, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo