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 :

Problème de syntaxe appel d'une fonction d'une DLL


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 254
    Points : 138
    Points
    138
    Par défaut Problème de syntaxe appel d'une fonction d'une DLL
    Bonjour,

    Je développe en C++ Builder 6.0 sous XP pro SP2.

    Je cherche à obtenir le pointeur d'une fonction de DLL dont je connais le nom, le type de retour, et les paramètres.
    Cette fonction a pour pour prototype
    char *GetDllVersion(void);
    Mon problème est que je n'arrive pas à déclarer le pointeur
    Parmi mes différents essais, je vous soumets celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    typedef char * (*MYDLLFUNC)(void);
      HINSTANCE hinstDLL;
      MYDLLFUNC ImpFuncDLL;
      char * Nom;
     
      if ((hinstDLL=LoadLibrary("WVC-BETA.dll"))) {
              ImpFuncDLL = GetProcAddress(hinstDLL, "GetDllVersion");
              if (ImpFuncDLL) {
                  Nom = ImpFuncDLL();
              }
              FreeLibrary(hinstDLL);
          }
    Je recois en retour le message d'erreur :
    cannot convert int (__stdcall *)() to char *(*)()
    Je compte sur votre sagacité et vous en remercie d'avance

    Kim

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 193
    Points : 277
    Points
    277
    Par défaut
    typedef char * (*MYDLLFUNC)(void);
    int (__stdcall *)() to char *(*)()

    On dirait bien que cela vient de la

    MYDLLFUNC ImpFuncDLL; est a remplacé par
    DWORD ImpFuncDLL;

    on peut essayer aussi
    INT ImpFuncDLL;

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Si tu es en C++, là il faut un cast.
    Un reinterpret_cast.

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Appel d'une fonction dans une fonction (sql server 2005)
    Par catchouse dans le forum Développement
    Réponses: 10
    Dernier message: 06/05/2009, 12h03
  3. getattr() ? Appel d'une fonction depuis une fonction
    Par frites.saucisse dans le forum Général Python
    Réponses: 8
    Dernier message: 10/10/2008, 14h21
  4. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 09h39
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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