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

Autres éditeurs Discussion :

Utilisation d'une dll dans C


Sujet :

Autres éditeurs

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Utilisation d'une dll dans C
    Comment inclure une dll(appeler une fonction qui se trouve dans celle-ci dans un program C?

  2. #2
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Ca dépend de ton compilateur.

    Fait une recherche sur msdn avec le mot clé "LoadLibrary" et "GetProcAddress".

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    j'utilise Vc++ comme compilateur et je voudrais appeler une fonction se trouvant dans un fichier .dll(j'ais aussi sa version .o)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 101
    Points
    101
    Par défaut
    Moi j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <windows.h>
    #define DLL_IMPORT __declspec(dllimport)
    #define DLL_EXPORT __declspec(dllexport)
    Le dllimport permet d'utiliser une fonction fournie par une dll, et le dllexport permet d'exporter une fonction, c'est à dire de signaler lors de la création de la dll que cette fonction sera appellable de l'extérieur

    Pour créer une dll sans tout configurer eb ligne de commande j'utilise pour ma part Dev-C++ avec Nouveau Projet DLL

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include <windows.h> 
    #define DLL_IMPORT __declspec(dllimport) 
    #define DLL_EXPORT __declspec(dllexport)
    Comment utiliser ce code pour appeler par exemple la fonction vide() qui se trouve dans une dll :essai.dll?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 101
    Points
    101
    Par défaut
    Alors ben a priori (pas testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <windows.h>
    #define DLL_IMPORT __declspec(dllimport)
     
    DLLIMPORT void vide(void);
     
     
    int main(void)
    {
        vide(); //Là tu l'utilise
     
        return 0;
    }

    Tu écris ce code dans un projet vide Dev-Cpp, l'important après c'est de lier l'objet créé avec le fichier "dll.a" créé lors de la compilation de ta dll.

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Le mieux avec visual est que tu lies le fichier .lib de ta dll avec ton projet et d'inclure l'entete qui va bien dans ton code. SI tu possédes le .o c'est tout aussi bien inclus le dans ton projet ( l'entete sera quand meme necessaire .h a moins que tu connaisses les proto des fonctions...)

    Ensuite tu pourras appeler les fonctions 'normalement'.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 101
    Points
    101
    Par défaut
    Heu oui mais là on perd quand même l'intérêt d'une dll ...

  9. #9
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par @drien
    Heu oui mais là on perd quand même l'intérêt d'une dll ...

    Tu pourrais être plus explicite, parce que la je vois pas du tout.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 101
    Points
    101
    Par défaut
    L'objectif s'une dll c'est justement de pas inclure le code des fonctions dans ton executable

  11. #11
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par @drien
    L'objectif s'une dll c'est justement de pas inclure le code des fonctions dans ton executable
    Tu réponds par rapport à ma réponse d'inclure le fichier .o ?

    Dans ce cas je suis d'accord avec ce que tu dis.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par hegros
    Tu réponds par rapport à ma réponse d'inclure le fichier .o ?
    Oui

    Citation Envoyé par hegros
    Dans ce cas je suis d'accord avec ce que tu dis.
    C'est cool, je préferre

  13. #13
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par @drien
    Citation Envoyé par hegros
    Tu réponds par rapport à ma réponse d'inclure le fichier .o ?
    Oui

    Citation Envoyé par hegros
    Dans ce cas je suis d'accord avec ce que tu dis.
    C'est cool, je préferre
    je dois avoir une petite forme en ce moment c'est pas le premier thread cette semaine où je réponds à coté...


Discussions similaires

  1. Utilisation d'une dll dans un projet Visual Studio 2008 [C#]
    Par rhoblik dans le forum Visual Studio
    Réponses: 2
    Dernier message: 19/06/2014, 15h16
  2. Utilisation d'une DLL dans VBA
    Par banjaman dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/03/2014, 15h20
  3. Utilisation d'une DLL dans le meme repertoire de l'application
    Par Stargate SG1 dans le forum VBA Access
    Réponses: 6
    Dernier message: 29/01/2009, 20h14
  4. Réponses: 9
    Dernier message: 06/04/2006, 18h40
  5. Utilisation d'une dll dans une application.
    Par jamais34 dans le forum MFC
    Réponses: 5
    Dernier message: 31/03/2006, 10h39

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