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 :

[Win] Recherche de header pour faire tourner un ancien programme


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Points : 6
    Points
    6
    Par défaut [Win] Recherche de header pour faire tourner un ancien programme
    Bonjour,

    Je dois développer pour mon stage un programme en C++ pour commender et acquérir des données d'appareils de mesures avec une carte IEEE 488. Comme je n'ai jamais fait ça, j'ai demandé des renseignements et j'ai pu trouver sur un vieux PC de la boîte un programme en C++ qui fait la même chose mais avec des appareils différents. Le problème, c'est que le programme ne fonctionne pas sur XP. Un problème de header apparement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <iostream.h>
    #include <stdlib.h>
    #include <string.h>
    #include <conio.h>
    #include <stdio.h>
    #include <dos.h>
    #include <graphics.h>
    #include <math.h>
    Il semblerait que graphics.h ne marche plus sur windows, alors est-ce que je peux le faire tourner en ajoutant le header ?
    De même, est-ce que les fonctions du types (ibwrt, ibrd, ...) comme dans le programme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    double mesu()
    {
    double fra;
    char reponse1[12]="";
    ibwrt(pico,"ENTER\x0A\x0D",7);
    ibrd(pico,&reponse1,12);
    ibwrt(pico,"ABORT\x0A\x0D",7);
    ibclr(pico);
    ibloc(pico);
    ibonl(pico,0);
    fra=atof(reponse1);
    return(fra);
    }
    ... fonctionne encore sous windows XP

    Merci

  2. #2
    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 519
    Points
    41 519
    Par défaut
    Rien de tout cela ne marchera sous un Windows moderne.
    Tu pourras recompiler le code pour DOS si tu reprends le vieux TurboC, mais je pense qu'il plantera à l'exécution...
    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.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut interface?
    Bonsoir,
    Apparament, ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    double mesu()
    {
    double fra;
    char reponse1[12]="";
    ibwrt(pico,"ENTER\x0A\x0D",7);
    ibrd(pico,&reponse1,12);
    ibwrt(pico,"ABORT\x0A\x0D",7);
    ibclr(pico);
    ibloc(pico);
    ibonl(pico,0);
    fra=atof(reponse1);
    return(fra);
    }
    Semble correspondre à des primitives qui écrivent dans les registres de la carte.
    Sous un OS 'moderne', tu devrais passer par un driver et utiliser l'API correspondante.
    Il me semble difficile de faire tourner cela ailleurs sans ré-écrire (au moins) cette partie là.

    - W
    ... fonctionne encore sous windows XP

    Merci[/QUOTE]
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    D'accord, merci pour vos réponses. Je me doutais qu'il fallait que je reprenne tout le code.

    J'ai regardé la documentation du fournisseur de la carte IEEE 488, mais il y a des choses que je ne comprends pas trop. Je vais ouvrir un autre sujet pour ça.

    Merci encore !

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Semble correspondre à des primitives qui écrivent dans les registres de la carte.
    Sous un OS 'moderne', tu devrais passer par un driver et utiliser l'API correspondante.
    Sur un OS moderne mais orienté temps réel, il y aura quand même probablement des instructions de ce genre.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [BO 5.1.8][INSTALL]Logiciels nécessaires pour faire tourner BO ?
    Par scalpa63 dans le forum Administration-Migration
    Réponses: 6
    Dernier message: 20/02/2007, 10h51
  2. Réponses: 16
    Dernier message: 01/02/2006, 22h05
  3. Réponses: 4
    Dernier message: 09/12/2005, 15h48
  4. recherche de module pour faire des graphiques
    Par Ickou dans le forum Modules
    Réponses: 1
    Dernier message: 01/11/2005, 22h20
  5. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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