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

Langage C++ Discussion :

Accéder à des fonctions DLL depuis une autre DLL


Sujet :

Langage C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Accéder à des fonctions DLL depuis une autre DLL
    Bonjour,

    J’espère que je suis au bon endroit pour poser ma question, dont je pense que la réponse est très simple.

    J’écris une DLL win32 (pas MFC) avec Visual C++6.0.
    Dans cette dll je dois faire appel à des fonctions implémentées dans une autres dll (rapi.dll). Je dispose du .h et du .lib de cette dll appelée.

    Dans le .h de ma dll j'ai inséré un "#include <rapi.h>" et même son .lib dans mon projet. Pour l'instant dans mon projet (ma dll win32) je n'appelle que la fonction "CeRapiInit" de rapi.dll

    Le problème c'est que lors de la compilation j'obtiens des erreurs du type "'CeRapiInit' : undeclared identifier" qui laisse penser que rapi.h n'est pas pris en compte.

    C'est surement une grossière erreur ou un oubli de ma part, mais je ne vois vraiment pas où ça cloche. D'autant plus que j'ai un autre projet (application console) avec les même déclarations qui fonctionne parfaitement. Il doit y avoir une subtilité que j'ignore au niveau des dll.

    Merci d'avance à tout ceux qui pourront m'aider.


    LS

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    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 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Normalement, c'est censé marcher. Au pire, essaie en incluant directement rapi.h dans tes sources de la DLL, plutôt que dans son .h.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    J'ai déjà essayé ça, mais sans résultat. Décidément je trouve ce Visual C++ bien capricieux !

    Merci quand même.

    LS

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 162
    Points
    17 162
    Par défaut
    As-tu vérifié les chemins de link pour la dll que tu construis?

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Au hasard, je dirais que la macro UNDER_CE est définie du coup la fonction n'est pas déclarée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //
    // The following definitions are for the client side only,
    // because they are already defined on Windows CE.
    //
    #ifndef UNDER_CE
    ....
    STDAPI CeRapiInit();
    ....
    #endif // #ifndef UNDER_CE

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/12/2014, 17h03
  2. Appeler une Dll dans une autre Dll.
    Par cdumargu dans le forum C#
    Réponses: 1
    Dernier message: 07/02/2012, 13h13
  3. Réponses: 4
    Dernier message: 28/11/2007, 16h38
  4. Réponses: 5
    Dernier message: 11/09/2007, 11h32
  5. une Dll peut elle utiliser les fonctions d'une autre dll?
    Par kantelise dans le forum Windows
    Réponses: 7
    Dernier message: 18/05/2006, 03h45

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