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

MFC Discussion :

Utilisation d'une Dll sous Visual C++


Sujet :

MFC

  1. #1
    Membre du Club Avatar de Hokagge
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 149
    Points : 67
    Points
    67
    Par défaut Utilisation d'une Dll sous Visual C++
    Bonjour a tous,

    Je cherche à utiliser une dll sous visual C++.

    J'ai créé une dll sous visual nommé TestDll.dll (par souci d'originalité ), de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <iostream>
     
    extern "C" __declspec(dllexport) int FonctionAdd(int a,int b)
    {
    	return ( a + b );
    }
    Puis j'ai créé un autre projet me permettant de l'utiliser dans lequel j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void CTestDllEXEDlg::OnButton1() 
    {
    	__declspec(dllimport) int FonctionAdd(int a,int b);
     
    	int c = FonctionAdd(4, 6);
     
    	CString string;
     
    	string.Format("%d", c);
     
    	MessageBox(string);
    }
    avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <iostream>
    #include <stdlib.h>
    Puis dans les options du compilateur j'ai rajouté le dossier ou se trouve la libraire créée avec ma dll, puis j'ai ajouté le nom de cette librairies dans les options du projet.

    Et malheureusement, à la compilation j'obtient c message:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TestDllEXEDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl FonctionAdd(int,int)" (__imp_?FonctionAdd@@YAHHH@Z)
    Debug/TestDllEXE.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.
    J'ai l'impression que le linkage avec ma dll ne se fait pas, je voudrais savoir si quelqu'un avait déja eu à faire avec ce genre de problème, ou si quelqu'un à une idée sur le problème, n'hésitez pas

    Merci,

    Salut.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    Parce que tu exportes une fonction extern "C", et importe une qui ne l'est pas. Soit tu l'enlève, soit tu le mets dans les 2.
    C'est pourquoi il est préférable d'avoir un .h avec ta dll qui se charge de définir correctement le nom, en un endroit unique.

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323

  4. #4
    Membre du Club Avatar de Hokagge
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 149
    Points : 67
    Points
    67
    Par défaut
    Bon eh bah très bien,

    que dire de plus, on poste, on te répond, et ça roule

    Merci beaucoup pour votre aide.

    Salut.

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

Discussions similaires

  1. Utilisation d'une DLL sous visual studio 2008
    Par MacCallahan dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 01/12/2013, 13h10
  2. utiliser une dll sous visual 2008 c++
    Par milach dans le forum Visual C++
    Réponses: 4
    Dernier message: 11/01/2010, 17h36
  3. Déboggage d'une DLL sous Visual Studio
    Par CodeCRC dans le forum Visual C++
    Réponses: 6
    Dernier message: 09/01/2009, 12h16
  4. Utilisation d'une DLL sous Matlab
    Par lince102 dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/02/2008, 09h51

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