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

Visual C++ Discussion :

code C qui tourne sous turboC mais pas sous Visual C++


Sujet :

Visual C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Par défaut code C qui tourne sous turboC mais pas sous Visual C++
    Bonjour,

    j'utilise l'environnement Visual C++, et je veux tourner un code c qui tourne déjà avec TURBOC. Mais je trouve des problèmes pour quelques fonctions. En faite:
    la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void preparepal()
    {
      for (int i=0; i<192;i++) setpal(i,0,0,(i*63/192));
      for (int i=192;i<256;i++)    setpal(i,i-192,i-192,63);
    }
    qui fait appel à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void setpal(unsigned char col, unsigned char r, unsigned char g, unsigned char b)
    {
    	outp (0x03C8,col);
    	outp (0x03C9,r);
    	outp (0x03C9,g);
    	outp (0x03C9,b);
    }
    n'est pas compréhensible par l'environnement Visual C++.
    Donc, est-ce que quelqu'un peut m'aider pour trouver un code similaire à ceci mais qui est exécutable par Visual C++, sinon comment faire pour résoudre le problème??
    merci d'avance!

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    Si le programme généré par TURBOC tourne sur votre machine, c'est soit que vous êtres sur un vieux coucou avec Win3.11 ou en mode compatibilité avec cette antiquité.

    Ca fait longtemps qu'on ne programme plus comme ça sous Windows.

    A moins d'être totalement à l'ouest sur votre code, il tripote les registres des périphériques lui-même. Or, avec la conception User/Kernel des OS Win95/WinNT et suivants, il n'est plus possible d'accéder directement à ce type de registre depuis un programme "User".

    Je ne vois que 2 options, car je ne connais pas les registres 0x03C8 et 0x03C9, c'est de soit faire un driver (programmation d'exécutable en mode Kernel) et VS n'est pas vraiment fait pour cela, soit trouver la sémantique des registres et de trouver l'API Win32 qui correspond au besoin du client.

    Au vue du nom des méthodes, si c'est pour faire mumuse avec les palettes de couleur de l'écran, ça fait longtemps que je n'ai pas vue d'affichage palettisé, et tant mieux. C'est donc probablement soit du code mort soit du code qui va mourir.

    Heu, rester sous DOS est une solution aussi.

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    la fonction outp est (était) généralement utilisée pour écrire des données sur un port de sortie.
    http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    Ces fameux "ports" sont des adresses (mais pas une adresse mémoire) pour accéder aux registres des périphériques sur BUS ISA dans les temps "glorieux" où ces registres n'étaient pas mappées dans l'espace d'adressage mémoire.
    Le CPU a/avait 2 catégories d'adresses, les adresses mémoires pour la mémoire et les adresses des périphériques.
    Avec ces instructions le CPU envoyait une valeur sur le bus ISA et le contrôleur matériel du BUS ISA routait la valeur vers le périphérique qui était associé au port (adresse "matériel" de l'équipement).

    Donc laissez tomber vos routines qui essayent de dialoguer directement ave l'électronique de la carte graphique. Il y a eu depuis : VESA Local bus, ..., PCI Express, qui ont complétement changé la donne depuis plus de de 20 ans.

Discussions similaires

  1. Code qui fonctionne sous XP mais pas sous 7
    Par theclem35 dans le forum Débuter
    Réponses: 2
    Dernier message: 09/06/2011, 20h02
  2. [Prob] code qui fonctionne sous windows mais pas sous linux
    Par hannibal.76 dans le forum Multimédia
    Réponses: 3
    Dernier message: 07/02/2011, 17h46
  3. Code qui marche sous Firefox mais pas sous Safari
    Par lorilan dans le forum jQuery
    Réponses: 0
    Dernier message: 21/01/2011, 21h27
  4. Code qui s'execute sous IE mais pas sous FF ni Chrome
    Par FraocH dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/04/2010, 10h13
  5. [DOM] Code qui marche sous IE mais pas sous Firefox
    Par angoradefrance dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/03/2009, 14h29

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