DLL

Signaler
Messages postés
37
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 août 2003
-
Messages postés
32
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
14 juillet 2005
-
salut tout le monde
je voudrai savoir

1- comment on appelle une fonction d'un fcihier dll, a partir d'une application(.exe)

2- est ce qu'il est preferable d'utiliser des dll, a la place de definir dans des fichier .h ou .cpp les fonctions ci dessus() celle des dll,
en effet je ne cherche pas specialement la securite des donnes mais seulement d'optimiser le temps d'execution
merci

soyant heureux
faisant fortune
:big)

7 réponses

Messages postés
25
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
6 mars 2014

pour appeller les fonctions de ta DLL a partir d'une appli tu as deux methode.
soit a partir de la DLL directement , soit grace au fichier lib que tu genere lors de la generation de ta DLL

voici pour le pre;iere methode :
/*
     *  Load the ICMP.DLL
     */
    hICMP_DLL = LoadLibrary("ICMP.DLL");
    if (hICMP_DLL == 0) {
        //printf ("LoadLibrary() failed: Unable to locate ICMP.DLL!\n");
        return -2;
    }

    /* 
     * Get pointers to ICMP.DLL functions
     */
    lpfnIcmpCreateFile  = (FARPROC)GetProcAddress(hICMP_DLL,"IcmpCreateFile");
    lpfnIcmpCloseHandle = (FARPROC)GetProcAddress(hICMP_DLL,"IcmpCloseHandle");
    lpfnIcmpSendEcho    = (FARPROC)GetProcAddress(hICMP_DLL,"IcmpSendEcho");
    if ((!lpfnIcmpCreateFile) || 
(!lpfnIcmpCloseHandle) || 
        (!lpfnIcmpSendEcho)) {
        //printf ("GetProcAddr() failed for at least one function.\n");
        return -1;
    }



pour la seconde methode tu ajoute ton .lib dans ton les liens de ton projet (sous VC++,-> Project-> setting ->link)
tu appelle ensuite directement t'es function
(si tu as le fichier header, inclue le !)

kornfr
Messages postés
37
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 août 2003

salut a toi kornfr
bon j'ai essauyer de les utiliser avec des .lib, mais j'ai pas reussi, a vrai dire j'ai pas tres bien commris la demarche a suivre,
si ca ne te derange pas trop , peux tu être plus explicite, merci encor,

sinon pour l'appel directe, et beh.... j'ai rien compris, a croire que je ne suis pas fais pour l'info ;)

soyant heureux
faisant fortune
:big)
Messages postés
25
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
6 mars 2014

ok,
si tu bosse sous VC++ 6.0 :
tu cree ton projet, tu ajoute dans le repertoire ton fichier lib, a moins qu'il se trouve dans le repertoire des librarie de VC.
ensuite sous vc++, va dans Project, setting, link, et tu rajoute tout a la fin le nom de ton fichier .lib

ensuite tu fais un #include <monfichierlib.h> si tu la.

ensuite c tout, t fais comment avec les autres focntion !

---
une petite question c toi qui a fais la DLL ou bien c une DLL recupere ?
Messages postés
37
Date d'inscription
jeudi 15 mai 2003
Statut
Membre
Dernière intervention
25 août 2003

j'ai juste cree une dll avec une fonction d'addition pour essayer,...
voila ca a marcher , merci,
a+

soyant heureux
faisant fortune
:big)
Messages postés
55
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
7 décembre 2004

kornfr, salut.
dis moi et t'as pas d'astuce pour BCB ?
car j'ai une dll je connais les functions, pis j'ai le lib aussi, que je ajoute dans le projet (Projet>Ajouter au projet) mais apres je sais rien de rien.. si t'as une solution :D
Messages postés
55
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
7 décembre 2004

nan c'est bon merci :D j'ai trouvé la solution:

if (LoadLibrary("<nom_de_dll>")) //si la dll est chargée...
  {
    <quoi_faire> //on fait des trucs lol
  }
else //sinon....
  {
    MessageBox(NULL,"ERROR","DLL NOT LOADED",MB_OK | MB_ICONINFORMATION); //on affiche un message d'info lol
  }


le seul prob que j'ai, c'est que quand je mets la function de la dll dans <quoi_faire> il reconnait pas la function :( et ca me pose les probs, sinon je vais voir ca demain :D

peace, bdk[where freedom doesn't have limits]
Messages postés
32
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
14 juillet 2005

Pour savoir les fonctions d'une dll, il suffit de la decompiler (avec windasm par exemple) et de regarder les fon,ctions exportés !!
Tout simple