Point d'entrée DLL

Signaler
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
Messages postés
6
Date d'inscription
mercredi 19 mai 2004
Statut
Membre
Dernière intervention
24 octobre 2010
-
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

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Comment tu la charges? LoadLibrary()?
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,



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



Merci,



Le créateur du site http://victorlogiciels.com
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
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+
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
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
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
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
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,

Personne n'a d'idée ?


Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Messages postés
6
Date d'inscription
mercredi 19 mai 2004
Statut
Membre
Dernière intervention
24 octobre 2010

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)
{
......
......
......
......
}