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 :

dll probleme ?


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 84
    Par défaut dll probleme ?
    bonjour,
    j'ai une application simple avec uen dll encore plyus simple

    dll:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    BOOL APIENTRY DllMain( HANDLE hModule, 
    DWORD ul_reason_for_call, 
    LPVOID lpReserved
    )
    {
    return TRUE;
    }
     
    extern "C" __declspec(dllexport) void HelloWorld()
    {
    printf("\n Text : ","");
    }
    
    ////////////////////////////////////////////////////////////
    application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    HINSTANCE LoadME;
    extern "C" __declspec(dllimport) void HelloWorld();
     
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    LoadME = LoadLibrary ("dll_Window.dll");
    if(LoadME != NULL)
    {
    printf("\n dll_window charged","");
    HelloWorld();
    }
    }
    ////////////////////////////////////////////////////////////
    voici l'erreur :
    error LNK2019: unresolved external symbol __imp__HelloWorld referenced in function _main

    /////////////////////////////////////////////////////////////

    je n'arrive pas à compiler

    merci pour votre aide


  2. #2
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Tu as oublier de linker dll_window.lib

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #pragma comment( lib, "dll_window.lib" )
    N'oublies pas de mettre le .lib dans le dossier de l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LoadME = LoadLibrary ("dll_Window.dll");
    LoadLibrary, c'est pour du dynamique, pas besoin ici.

  3. #3
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Ton erreur est normale, Ton programme client ne connait pas ta fonction HellWord(), elle appartient à ta dll.

    La méthode que tu as utilisé pour charger la dll est un chargement dynamique avec ::LoadLibrary()
    Tu dois appeler ::GetProcAddress() pour obtenir l'adresse de ta fonction.
    Essaie un peu ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    typedef void (CALLBACK* LPFN) (void);
    // ...
     
    HMODULE hModule = ::LoadLibrary("dll_Window.dll");
    if(hModule)
    {
              LPFN pfnApi = (LPFN)::GetProcAddress(hModule, "HelloWorld");
              if(pfnApi)
                    pfnApi();  // HelloWorld();
    }


  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 84
    Par défaut
    Citation Envoyé par Mayti4
    Tu as oublier de linker dll_window.lib

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #pragma comment( lib, "dll_window.lib" )
    N'oublies pas de mettre le .lib dans le dossier de l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LoadME = LoadLibrary ("dll_Window.dll");
    LoadLibrary, c'est pour du dynamique, pas besoin ici.
    excellent
    merci ç amarche maintenant

    merci à tous les deux

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

Discussions similaires

  1. [Delphi] [DLL] Problème avec un paramètre PChar
    Par Mickey.jet dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2006, 16h43
  2. [DLL] Probleme avec le Type TRichEdit !
    Par TOTO32 dans le forum Langage
    Réponses: 2
    Dernier message: 03/08/2005, 20h50
  3. [dll] probleme a l importation
    Par BainE dans le forum MFC
    Réponses: 4
    Dernier message: 06/07/2005, 15h44
  4. [MFC]+[dll] probleme au linkage
    Par BainE dans le forum MFC
    Réponses: 3
    Dernier message: 22/06/2005, 12h04
  5. [DLL]probleme au liage
    Par Blo0d4x3 dans le forum MFC
    Réponses: 2
    Dernier message: 16/09/2004, 07h15

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