C/C++ et fonctions DLL

I'mhere -  
 fd -
bonjour tt le monde,
j'aimerai bien savoir est ce que c'est possible d'appeller les fonctions contenu dans une DLL avec un programme c ou c++.
si oui merci d'expliquer la procédure. c urgent
merci

7 réponses

  1. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    Concernant les dll, il faut utiliser conjointement LoadLibrary et GetProcAddress. Admettons que tu as une dll dummy.dll et une fonction foo(char *message) que tu veux appeler, ca donnera :

     HINSTANCE hLib = NULL; 
      void (WINAPI *foo)(char *message); // pointeur sur func 
       
      BOOL LoadDLL() 
      { 
            hLib = LoadLibrary("dummy.dll"); 
            if(hLib == NULL) 
                  return FALSE; 
            foo = (void*)GetProcAddress(hLib, "_foo@4"); 
            if(foo = NULL) 
            { 
                 FreeLibrary(hLib); 
                 hLib = NULL; 
                 return FALSE; 
             } 
            return TRUE; 
      } 
      


    Apres tu appels la fonction normalement (n'oublie pas FreeLibrary en quittant).

    COIN!
    5
  2. Jim
     
    Pas besoin de faire ca de facon dynamique, si on a le fichier lib de la dll !!!
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    et comment on fait ça de façon non dynamique?

    Salutation !
    Char Snipeur
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    je suppose un simple include...

    COIN!
    0
  6. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    je ne croi pas, un include met le texte directement dans le fichier, c'est un genre de lien. Les DLL sont déjà compiler. à moins que le compilateur ne prenne pas en compte le langage déjà compiler, mais j'en doute fort...

    Salutation !
    Char Snipeur
    0
  7. fd
     
    Pour le faire de façon non dynamique il te suffit de linker le .lib à ton projet.

    (par contre avec GetProcAdresse n'oublie pas de déclarer tes fonctions en extern "C")
    0