DLL

ifren Messages postés 37 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 25 août 2003 - 27 mai 2003 à 16:30
entracyte Messages postés 32 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 14 juillet 2005 - 13 juil. 2004 à 14:54
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

kornfr Messages postés 25 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 mars 2014
27 mai 2003 à 16:49
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
0
ifren Messages postés 37 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 25 août 2003
27 mai 2003 à 17:39
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)
0
kornfr Messages postés 25 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 6 mars 2014
27 mai 2003 à 17:51
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 ?
0
ifren Messages postés 37 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 25 août 2003
27 mai 2003 à 18:08
j'ai juste cree une dll avec une fonction d'addition pour essayer,...
voila ca a marcher , merci,
a+

soyant heureux
faisant fortune
:big)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bdkiller Messages postés 55 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 7 décembre 2004
27 mai 2003 à 22:08
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
0
bdkiller Messages postés 55 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 7 décembre 2004
28 mai 2003 à 03:06
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]
0
entracyte Messages postés 32 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 14 juillet 2005
13 juil. 2004 à 14:54
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
0
Rejoignez-nous