Point d'entrée DLL

victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 - 30 oct. 2005 à 13:54
vdvince2015 Messages postés 6 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 24 octobre 2010 - 20 avril 2006 à 21:19
Bonjour,



J'ai Dev-C++ et quand je créé une dll la fonction DllMain() n'est pas apellé quand je charge dans un porgramme cette dll !

Voici le code de la Dll :

#include <windows.h>

#include <stdio.h>



#if BUILDING_DLL

# define DLLIMPORT __declspec (dllexport)

#else /* Not BUILDING_DLL */

# define DLLIMPORT __declspec (dllimport)

#endif /* Not BUILDING_DLL */



void DLLIMPORT essai()

{

printf("\nEssai\n\n");

}



BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,


DWORD reason /* Reason this
function is being called. */ ,


LPVOID reserved /* Not used. */ )

{

MessageBox(0,"DllMain",0,0);

switch (reason)

{

case DLL_PROCESS_ATTACH:

break;



case DLL_PROCESS_DETACH:

break;



case DLL_THREAD_ATTACH:

break;



case DLL_THREAD_DETACH:

break;

}



/* Returns TRUE on success, FALSE on failure */

return TRUE;

}





Merci,



Le créateur du site http://victorlogiciels.com

7 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
30 oct. 2005 à 15:56
Comment tu la charges? LoadLibrary()?
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
30 oct. 2005 à 15:58
Bonjour,



Oui ou statiquement donne le même résultat.



Merci,



Le créateur du site http://victorlogiciels.com
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
31 oct. 2005 à 17:29
salut,

c'est con mais je crois qu'avec dev-c++ il faut spécifier que la methode dllmain est DLLEXPORTée (__declspec dllexport)...

ca se fait par défaut avec d'autres compilos.



allez a+
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
31 oct. 2005 à 19:58
Bonjour,


Je vais essayer ça mais je sais que si je compile en C ça marche mais pas avec le compilateur C++.


Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
0

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

Posez votre question
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
21 nov. 2005 à 22:06
Bonjour,


Désolé mais même avec l'exportation en C++ marche pas !

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
4 févr. 2006 à 16:51
Bonjour,

Personne n'a d'idée ?


Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
0
vdvince2015 Messages postés 6 Date d'inscription mercredi 19 mai 2004 Statut Membre Dernière intervention 24 octobre 2010
20 avril 2006 à 21:19
Comme l'a dit cosmobob, il faut exporter la fonction DllMain.

en clair, il faut rajouter 'extern "C" __declspec(dllexport)' devant, comme ci dessous:

extern "C" __declspec(dllexport) BOOL APIENTRY DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID Reserved)
{
......
......
......
......
}
0
Rejoignez-nous