Soyez le premier à donner votre avis sur cette source.
Vue 10 283 fois - Téléchargée 1 060 fois
1/ Code à mettre dans l'exécutable crée pour le chargement de la DLL: // Déclaration des variables indispensables pour le chargement d?une DLL HINSTANCE gLibDll; // ?Handle? typedef BOOL (*DLLSTART)(); // Définition du type du point d?entrée de la DLL // Ici le point d?entrée ne prend pas de // paramètres d?entrée et retourne un booléen DLLSTART dll_Start; // Déclaration d?une variable de type DLLSTART // Code permettant le chargement de la DLL gLibDll = LoadLibrary("DllGraph.dll"); // Récupère l?adresse du point d?entrée de la DLL s?appelant « BOOL Start() » // dans la DLL dll_Start = (DLLSTART) GetProcAddress(gLibDll, "Start"); // Lancement de la fonction contenant l?adresse du point d?entrée de la DLL dll_Start(); // Code permettant la libération de la mémoire allouée pour la DLL FreeLibrary(gLibDll); 2/ Code allant dans la DLL Il faut créer ici un projet MFC Appwizard(dll) (on prendra comme nom pour l'exemple: DllGraph (VC++ crée donc un DllGraph.cpp et DllGraph.h) Il faut ensuite créer une nouvelle classe de type CDialog Pour cela créer en premier une nouvelle resource de type CDialog puis créer une nouvelle classe dérivant de CDialog avec comme ID celui de la resource juste crée. (par ex: CDlgTest est notre classe que l'on vient de créer) Maintenant il faut crée un point d'arrêt à notre DLL graphique. Ce point d'entrée doit être insérer dans Test.cpp et sera de ce style: // Nom de la fonction: Start // Entrée: aucune // Sortie: Booléen extern "C" BOOL __declspec(dllexport) Start() { // Permet d'afficher notre fenetre CDlgTest AFX_MANAGE_STATE(AfxGetStaticModuleState()); CDlgTest dlg; dlg.DoModal(); return FALSE; } NB :Les paramètres d'un point d'entrée sont obligatoirement en C et non en C++. NB2: Dans DllGraph.cpp, ne pas oublier d'inclure DlgTest.cpp!!! Voila le tour est joué, une Dll graphique peut etre charger par un executable. <<-- H@ldwin -->>
25 juil. 2006 à 10:59
Comment on fait si la dll prend des paramètres ?
Merci.
22 juin 2006 à 16:27
Je ne sais pas quel type d'application MFC il faut ici pour tester ton source ?(SDI, MDI, Dialog based...)
J'espere que tu va pouvoir me renseigner
Merci
27 janv. 2005 à 04:58
Merci encore
24 mars 2003 à 17:27
Faudra insister... ;-)
23 mars 2003 à 12:23
Lorsque tu veux debugger ta Dll, VC++ te demande le chemin de l'executable: tu mets donc le chemin de ton exec...
Bon dev et n'hesitez pas à me demander d'autres infos si je me suis mal expliqué,
<<-- H@ldwin -->>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.