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 :

[DLL C++ dans VBA Excel] Overflow


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [DLL C++ dans VBA Excel] Overflow
    Bonjour,
    Voici mon problème. Je l'ai également posté sur le forum Excel mais peut-être est-il mieux approprié de le poster ici...
    J'utilise une DLL développée en C++ qui est une bibliothèque de calculs thermodynamiques via VBA pour Excel. Il s'agit d'une seule fonction avec une option "opt". Selon la valeur de l'option, l'unique fonction C appelle en réalité d'autres fonctions, de sorte que je peux choisir le type de calcul que je désire : masse volumique, facteur de compressibilité etc... d'où un résultat différent selon l'option.
    Certaines de ces fonctions marchent très bien.
    Par contre, l'une d'elle provoque un #VALUE dans ma cellule excel.
    En appelant ma fonction via une procédure sub(), j'obtiens un message d'erreur plus explicite : "Overflow".
    Par contre, en exécutant ma fonction C++ via mon EDI (DevC++), j'obtiens bien le résultat escompté que j'affiche avec printf.
    A noter que cette fonction contient un nombre assez important de tableaux de constantes déclarées en tant que tableaux de "double" (avec "const double", même constat), ainsi qu'un grand nombre de variables.
    Est-ce un problème de gestion de la mémoire ? Comment peut-on améliorer les choses ? (en scindant en plusieurs fonctions dont chacune hériterait d'une partie des tableaux de constantes ? en mettant mes tableaux en mémoire grâce à un pointeur et un malloc ? Est-ce dû à la longueur de la fonction elle-même ?)
    D'avance merci.

    Jean-Luc

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème résolu
    Re...
    Finalement j'ai résolu mon problème.
    Dans la fameuse fonction il y avait également un calcul d'incertitude utilisant un vecteur d'incertitudes de mesure. Je ne voulais pas utiliser a priori les résultats de ce calcul et j'avais éliminé des arguments de la fonction ce fameux vecteur. De toute façon, la fonction ne renvoie pas les résultats de ce calcul. Le problème c'est que le vecteur de départ n'était pas initialisé dans le corps de la fonction !
    Conclusion, dans DevC++ le vecteur est initialisé à des valeurs raisonnables (0 ?) mais pas dans l'environnement Excel, d'où des dépassements de capacité !

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

Discussions similaires

  1. DLL créée par delphi à utiliser dans VBA EXCEL
    Par AlfredKr dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/03/2015, 08h29
  2. Réponses: 5
    Dernier message: 27/05/2008, 18h43
  3. Liste des contrôles dans VBA-Excel
    Par CAFOUIN dans le forum Excel
    Réponses: 2
    Dernier message: 23/02/2007, 17h50
  4. Name et formula dans VBA Excel
    Par khadba dans le forum Windows
    Réponses: 1
    Dernier message: 20/02/2007, 11h37
  5. [VBA-E] Compatibilité de Date dans VBA Excel
    Par dorschner dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/05/2006, 19h25

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