C/C++ et fonctions DLL

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. Contributeur
    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
    1. Pas besoin de faire ca de facon dynamique, si on a le fichier lib de la dll !!!
      0
      1. Contributeur
        et comment on fait ça de façon non dynamique?

        Salutation !
        Char Snipeur
        0
        1. Contributeur
          je suppose un simple include...

          COIN!
          0
          1. Contributeur
            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
            1. 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