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 :

Compilation C++ différente sur 2 machines avec VC++6


Sujet :

Visual C++

  1. #1
    Membre habitué Avatar de Thrud
    Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 183
    Points
    183
    Par défaut Compilation C++ différente sur 2 machines avec VC++6
    Compilation C++ différente sur 2 machines avec VC++6



    Bonjour,

    J'ai un problème de compilation d'un projet développé sous VC++6.
    Le même projet compilé sur deux machines différentes génère deux exe différents : un qui fonctionne, et un qui ne fonctionne pas.

    En demandant la génération de fichier .cod, une différence remarquable (les noms de variables ne sont pas significatifs) est la suivante :

    pour cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                         CTime dummy = CTime(current.GetYear(),current.GetMonth(),current.GetDay(), TempTime.GetHour(),TempTime.GetMinute(),0,0);
    une des machines génère
    0035f 6a 00 push 0
    00361 6a 00 push 0
    00363 8d 4d dc lea ecx, DWORD PTR _TempTime$112900[ebp]
    00366 e8 00 00 00 00 call ?GetMinute@CTime@@QBEHXZ ; CTime::GetMinute
    0036b 50 push eax
    0036c 8d 4d dc lea ecx, DWORD PTR _TempTime$112900[ebp]
    0036f e8 00 00 00 00 call ?GetHour@CTime@@QBEHXZ ; CTime::GetHour
    00374 50 push eax
    00375 8d 4d d4 lea ecx, DWORD PTR _current$112908[ebp]
    00378 e8 00 00 00 00 call ?GetDay@CTime@@QBEHXZ ; CTime::GetDay
    0037d 50 push eax
    0037e 8d 4d d4 lea ecx, DWORD PTR _current$112908[ebp]
    00381 e8 00 00 00 00 call ?GetMonth@CTime@@QBEHXZ ; CTime::GetMonth
    00386 50 push eax
    00387 8d 4d d4 lea ecx, DWORD PTR _current$112908[ebp]
    0038a e8 00 00 00 00 call ?GetYear@CTime@@QBEHXZ ; CTime::GetYear
    0038f 50 push eax
    00390 8d 4d d0 lea ecx, DWORD PTR _dummy$112909[ebp]
    00393 e8 00 00 00 00 call ??0CTime@@QAE@HHHHHHH@Z ; CTime::CTime

    et l'autre génère :

    0035f 6a 00 push 0
    00361 6a 00 push 0
    00363 8d 4d dc lea ecx, DWORD PTR _TempTime$112840[ebp]
    00366 e8 00 00 00 00 call ?GetMinute@CTime@@QBEHXZ ; CTime::GetMinute
    0036b 50 push eax
    0036c 8d 4d dc lea ecx, DWORD PTR _TempTime$112840[ebp]
    0036f e8 00 00 00 00 call ?GetHour@CTime@@QBEHXZ ; CTime::GetHour
    00374 50 push eax
    00375 8d 4d d4 lea ecx, DWORD PTR _current$112848[ebp]
    00378 e8 00 00 00 00 call ?GetDay@CTime@@QBEHXZ ; CTime::GetDay
    0037d 50 push eax
    0037e 8d 4d d4 lea ecx, DWORD PTR _current$112848[ebp]
    00381 e8 00 00 00 00 call ?GetMonth@CTime@@QBEHXZ ; CTime::GetMonth
    00386 50 push eax
    00387 8d 4d d4 lea ecx, DWORD PTR _current$112848[ebp]
    0038a e8 00 00 00 00 call ?GetYear@CTime@@QBEHXZ ; CTime::GetYear
    0038f 50 push eax
    00390 8d 8d 74 ff ff
    ff lea ecx, DWORD PTR $T120101[ebp]
    00396 e8 00 00 00 00 call ??0CTime@@QAE@HHHHHHH@Z ; CTime::CTime
    0039b 50 push eax
    0039c 8d 4d d0 lea ecx, DWORD PTR _dummy$112849[ebp]
    0039f e8 00 00 00 00 call ??0CTime@@QAE@ABV0@@Z ; CTime::CTime
    Quelqu'un aurait une idée du pourquoi il y a des différences sur les appels à la fin ?

    Merci

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Pas la même version de VC++ sur les deux machines (vérifier SP et numéro de build), ou pas le même OS et tu n'as pas verrouillé le version de Windows ciblée dans ton code...

  3. #3
    Membre habitué Avatar de Thrud
    Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 183
    Points
    183
    Par défaut
    Bonjour,

    effectivement, il semble que le SP6 ne soit pas installé sur ma machine.
    (Merci les admins...)

    Merci pour la réponse.
    Désolé de ne pas avoir vérifié plus complètement avant . En fait, la fenêtre about de VC6 affiche la même chose, il n'y a pas d'info sur le SP installé. Il fallait vérifier les version des C1/C2.dll...

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Thrud Voir le message
    Désolé de ne pas avoir vérifié plus complètement avant .
    Je répondrais à ça par : "as-tu déjà eu le problème au moins une fois sur une machine, qui aurait pu te faire présupposer que tu venais de tomber dans un cas de génération corrigé par une correction du compilateur" ?
    Si oui, alors tu peux être désolé. Sinon, ben tu viens d'apprendre que c'était possible, et tu ne referas plus cette "erreur"...

    C'est un cas typique de problème que l'on ne voit qu'après quelques années d'expérience, de toutes façons.

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

Discussions similaires

  1. Problème avec un projet sur deux machines différentes
    Par dz_robotix dans le forum Visual C++
    Réponses: 3
    Dernier message: 20/02/2012, 18h00
  2. Aperçu avant impression différent sur 2 machines
    Par talrashha dans le forum Excel
    Réponses: 1
    Dernier message: 05/12/2011, 13h52
  3. Exception avec comportement différent sur 2 machines
    Par sybaris dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/03/2009, 10h49
  4. Réponses: 6
    Dernier message: 03/08/2006, 13h19
  5. Script sur plusieur machine avec perl (cluster)
    Par vodevil dans le forum Programmation et administration système
    Réponses: 3
    Dernier message: 27/02/2006, 20h04

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