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 :

visual et dllS


Sujet :

C++

  1. #1
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut visual et dllS
    bonjour,

    j'ai créé une dll avec visual studio (C/C++), celle-ci exporte des fonctions qui font appellent à des méthodes/classes d'autres librairies. J'ai ces autres librairies en .lib et .dll (+.h).

    j'ai réussi à compiler ma dll en mettant les .lib dans les dépendances du projet, cependant en voulant importer ma dll j'ai une erreur 48 d'excel

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Un peu de code ne nous ferait pas de mal

    1°)Quel est le code de ta fonction?
    2°)Comment l'importes-tu dans Excel?

  3. #3
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    je veux bien vous donner du code ... mais quoi ?

    en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void f(mpfr::mpreal *valeur) {
    } // j'utilise mpfr comme vous pouvez le voir ;)
    et dans Excel : mpfr::mpreal devient Double (ByRef).

    Comme dans la classe mpreal il y a un constructeur mpreal(const double, argument avec valeurs par défauts) ça devrait marcher non ?

    edit : en mettant des double partout, ça marche sans problèmes.
    edit 2 : en fait en retestant, ça ne marche pas, j'ai l'erreur 48 ... pourtant ce projet marché

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    mpreal est une classe C++, ce type n'a pas d'équivalent en VBA. double (type double du C++) par contre correspond au Double de VBA. en plus void f(...) n'a aucune chance de pouvoir être utilisable en VBA. extern "C" void __stdcall f(...), oui. Il y a pas mal de discussions qui traitent de cela sur ce forum. Fais quelques recherches.

  5. #5
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    je ne peux pas forcer la conversion double -> mpreal ?

    edit : je viens de me rendre compte que en passant de linux à windows je n'avais aps remis les __stdcall ... je reteste

  6. #6
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    bon finalement ça fait toujours pareil (mais ça remarche avec des double).

    comment puis-je faire pour utiliser mpfr dans une dll (ce dernier étant en dll ou lib) et passer ce problème de double/mpreal ?

    edit : j'essaye de comprendre comment dire à une dll d'en utiliser une autre mais je ne vois pas comment faire dans ce cas où ça porte sur des types et non des fonctions.

  7. #7
    Membre éclairé Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par défaut
    j'ai une erreur un peu bizarre :

    Erreur d'execution : 2147417848 (80010108 erreur d'automation , l'objet invoqué s'est deconnecté de ses clients
    ... je ne la comprends pas ... ma dll marche ... sauf avec excel pour une fonction (qui créer une matrice juste pour la fonction elle-même)

    edit : j'ai testé la dll dans un projet "test" et elle marche ... mais aps dans excel

    edit 2 : c'est bon ça marche dans excel mais toujours pas avec mpfr

Discussions similaires

  1. C++/Windows visual studio - dlls chargées
    Par JBond007 dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2010, 13h53
  2. [visual studio] dll lib exécution
    Par drKzs dans le forum Windows
    Réponses: 3
    Dernier message: 17/01/2008, 15h53
  3. dll visual et dll cygwin
    Par Tarboeuf dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 25/09/2007, 15h41
  4. Visual 2005 DLL windows.H
    Par samtheh dans le forum Visual C++
    Réponses: 21
    Dernier message: 15/01/2007, 12h13
  5. [Visual C++] DLL & Menu Contextuel
    Par Kenshiro1980 dans le forum Windows
    Réponses: 2
    Dernier message: 19/10/2005, 09h54

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