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

Visual C++ Discussion :

Communiquer avec une DLL


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut Communiquer avec une DLL
    Bonjour à tous,

    J'ai une petit problème par rapport à une DLL, je m'explique ^^

    On a mit à ma disposition une DLL (qui est normalement fonctionnelle) et je doit réalisé un programme de teste (C++) qui interroge chaque fonctionnalité de ma DLL, pour vérifier si elle est réellement fonctionnelle et si elle renvoie bien les informations attendu.

    Et le problème que je rencontre c'est que je sais pas comment communiqué entre mon programme que je doit crée et la DLL.
    (je code sous Visual Studio.)

    Si je suis pas claire dit le moi

    Merci d'avance pour votre aide

  2. #2
    Membre émérite Avatar de shadowmoon
    Homme Profil pro
    Expert technique et fonctionnel .Net
    Inscrit en
    Mai 2005
    Messages
    1 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Expert technique et fonctionnel .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 066
    Points : 2 645
    Points
    2 645
    Par défaut
    Voici quoi faire

    1) créer un nouveau projet (ou une nouvelle solution) dans visual studio

    2) mettre la dll à tester dans les références de ce projet / solution

    3) faire appel aux fonctions de la dll dans le code
    il n'y a jamais eu qu'un seul chrétien et il est mort sur la croix Friedrich Nietzsche
    L'homme est un apprenti, la douleur est son maitre Alfred de Musset
    C'est avoir tort que d'avoir raison trop tôt Praefectus Praetario Hadrianus

    my best memories ever : 2008 London Circle Line "The Booze Train"

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    Faire un projet en Win32 Projet suffit ou pas?

    Et il faut que je mette tout le code source de ma DLL dans les références de ce projet ou pas du tout ?

    C'est la première fois que j'utilise un DLL donc c'est un peut nouveau pour moi

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par titou34 Voir le message
    Et il faut que je mette tout le code source de ma DLL dans les références de ce projet ou pas du tout ?
    Non pas du tout. Il faut indiquer dans les paramètres du projet où trouver la DLL. Ensuite dans le code il faut utiliser les fonctions qui appellent les méthodes contenues dans cette DLL (je n'ai plus en tête ce genre de chose, mais recherchant bien on peut les trouver).

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 307
    Points : 983
    Points
    983
    Par défaut
    Citation Envoyé par titou34 Voir le message
    Faire un projet en Win32 Projet suffit ou pas?

    Et il faut que je mette tout le code source de ma DLL dans les références de ce projet ou pas du tout ?

    C'est la première fois que j'utilise un DLL donc c'est un peut nouveau pour moi
    Si c'est un projet c++ il faut que tu crée une librairie d'importation .lib avec l'outil lib.exe et ensuite tu link avec la lib d'importation. A l'execution assure toi que la dll soit bien trouvée (ie. au meme endroit que l'exe).

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Déjà, est-ce que la DLL est fournie "seule" ou est-elle fournie avec des fichiers d'en-tête? Une documentation?

    Une DLL fournie "seule" n'est pas vraiment utilisable à moins d'être une DLL spéciale (DLL COM avec type library intégrée, DLL .Net...)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    J'ai tout les fichier d'en-tête, (.cpp / .h / et plein d'autre fichier) , j'ai aussi des doc "d'utilisation".

    Je vais essayer des maintenant de faire ce que vous m'avais dit.

    Merci d'avance pour votre aide à tous

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par renoo Voir le message
    Si c'est un projet c++ il faut que tu crée une librairie d'importation .lib avec l'outil lib.exe et ensuite tu link avec la lib d'importation. A l'execution assure toi que la dll soit bien trouvée (ie. au meme endroit que l'exe).
    Je ne trouve pas comment crée une librairie d'importation en utilisant lib.exe

    J'ai essayer avec Visual Studio 2003 et Visual Studio 2015 mais soit j'ai pas les yeux en face des trous soit je sais pas ^^

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Si t'as le code source de la Dll, recompiles la Dll. VS générera automatiquement le .lib associé.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    Bon après quelque long problème de compilation de ma DLL, j'ai donc besoin de créé un programme de teste pour testé ma DLL en question.

    Comment faire sous visual studio pour utilisé cette DLL???

    Il suffit que je créé un nouveau projet genre Win32 et intégré au référence du projet la DLL??


  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Une dépendance au projet est une façon (par défaut, ça ajoute la sortie du projet dépendu (la DLL) aux options de link du projet dépendant).
    Tu peux aussi rajouter le chemin relatif vers les includes de la DLL dans les "Additional Include Directories" du projet de l'EXE...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Une dépendance au projet est une façon (par défaut, ça ajoute la sortie du projet dépendu (la DLL) aux options de link du projet dépendant).
    Tu peux aussi rajouter le chemin relatif vers les includes de la DLL dans les "Additional Include Directories" du projet de l'EXE...
    En gros tous simplement je crée un nouveau projet Win32Application et ensuite dans les options du projet --> Linker --> Additional Include Directories , je lui donne juste le chemin du dossier ou il va pouvoir trouve mon .dll + .lib

    C'est bien sa??

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Additional Include Directories n'a rien à voir avec le linker.

    Et je parlais des Project Dependencies que tu peux voir en cliquant-droit sur un projet dans le Solution Explorer.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    Désolé mais je comprend pas très bien ce que tu veux dire

    J'ai créé un nouveau projet Win32Application et maintenant je trouve pas comment utilisé ma DLL dans mon nouveau projet

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour utiliser une bibliothèque, il y a deux choses à faire: Pouvoir inclure les fichiers d'en-tête qui déclarent les fonctions qu'elle contient, et pouvoir linker à la bibliothèque. Ce sont deux réglages différents dans les options du projet, mais dans le cas de deux projets dans la même solution, il y a un raccourci pour le second réglage: Les "Project Dependencies" qui ne sont pas dans les options du projet, mais qui sont accessibles d'un simple clic-droit sur le projet.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2015
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 79
    Points : 33
    Points
    33
    Par défaut
    C'est bon j'ai compris comment faire j'ai trouvé mon bonheur sur : https://msdn.microsoft.com/en-us/library/ms235636.aspx

    Pour ce qui on besoin d'utilisé une DLL dans un projet faite ce tuto et après appliqué le a votre projet

    MERCI à ce qui mon aidéé

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

Discussions similaires

  1. [Débutant] Faire communiquer PHP avec une DLL C#
    Par nicko_73 dans le forum C#
    Réponses: 1
    Dernier message: 29/06/2012, 09h48
  2. communiquer avec une DLL (COM interop)
    Par aA189 dans le forum EDI/Outils
    Réponses: 0
    Dernier message: 23/04/2010, 20h24
  3. Communiquer avec une DLL externe
    Par Alekhine dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 22/02/2009, 15h49
  4. Comment communiquer avec une dll, source à l'appui
    Par alpha_one_x86 dans le forum C++
    Réponses: 3
    Dernier message: 06/11/2008, 19h17
  5. Communiquer avec une DLL depuis un driver .SYS
    Par barthelv dans le forum Windows
    Réponses: 17
    Dernier message: 03/04/2006, 10h43

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