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 :

erreur sur la valeur ESP


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut erreur sur la valeur ESP
    Bonjour, mon programme plante avec l'erreur "The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared one calling convention with a function pointer declared with a different calling convention"

    Certes, j'ai bien compris le message d'erreur, mais je ne vois pas dans mon code où pourrait se trouver l'erreur. J'ai vérifié le prototype de la fonction, mes variables, mais je ne vois rien du tout.

    Dans ma fonction C++ j'appelle une fonction Fortran (compilée via une lib statique). Ma fonction C++ plante au moment de l'accolade fermante de la fonction.

    Quelqu'un aurait-il une idée ? Sur le net, je n'ai pas trouvé bcp d'indices pouvant m'aider...

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Cela ressemble à un problème de convention d'appel

    Est-ce que tu peux nous montrer la déclaration de la fonction fortran que tu appelles ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Salut,

    en haut de mon fichier .cpp qui contient ma fonction C++ j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern "C" void TEMPER_TG_HISTE( int*, double*, double*, double*, int*, double*, double*, int*, int*);
    qui est le prototype de ma fonction Fortran. Ensuite, dans ma fonction C++, j'appelle ma fonction Fortran

    Je travaille sous Visual 2005

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Re,

    j'ai mis ceci à la place

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern "C" void __stdcall TEMPER_TG_HISTE( int*, double*, double*, double*, int*, double*, double*, int*, int*);
    et ça à l'air de marcher...

    je n'ai testé que sur 1 cas pour l'instant...

    Merci !

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern __stdcall  void TEMPER_TG_HISTE( int*, double*, double*, double*, int*, double*, double*, int*, int*);
    [Edit] Bon, nos réponses se sont croisée mais disent la même chose, c'est bon signe.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    C'est bon ça marche. J'ai passé ma base de tests

    merci !

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

Discussions similaires

  1. [XL-2013] MACRO calcul de rentabilité - erreur sur retour valeur
    Par saboun.tebah dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/09/2014, 20h19
  2. Réponses: 0
    Dernier message: 05/01/2014, 23h32
  3. [XL-2003] Erreur 1004 sur copie valeur
    Par scrouet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/04/2012, 12h19
  4. [XL-2010] Erreur sur récupération valeur TextBox
    Par Kaera dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/12/2011, 12h36
  5. Message d'erreur sur valeur "Null"
    Par minooo dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 02/11/2008, 16h52

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