Exécuter une fonction en arrière plan

Signaler
Messages postés
126
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
15 février 2005
-
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
-
Bonjour,

j'ai créer une dll dans la quelle ce trouve une fonction d'écoute en UDP qui affiche un message dè kel recoit kelke choz.

Cette fonction tourne toujours a partir du moment ou l'utilisateur de la dll l'a appelée.
Mais je suppose que si l'utilisateur appelle cette fonction, il n'aura plus la main tant qu'il ne sera pas sorti de la fonction? Non?

Donc ce que je souhaiterais c'est quela fonction soit appelée, et kel rende la main à l'utilisateur.
Ou alors je lance la fonction au chargement de la dll (ca aussi c'est possible), mais il faut absolument rendre la main pour que l'utilisateur puisse utiliser la dll.

Kelk'un peut m'aiguiller SVP?
merci beaucoup.

3 réponses

Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
Solution 1:
BOOL WINAPI DllMain(
HINSTANCE hinstDLL, // handle to DLL module
DWORD fdwReason, // reason for calling function
LPVOID lpvReserved // reserved
)
{
case DLL_PROCESS_ATTACH:
// Au chargement de la DLL
break;

case DLL_PROCESS_DETACH:
// A la libération de la DLL
break;
}

Solution 2:
Utiliser la fonction CreateThread pour exécuter ta fonction en arrière plan.

Core Breaker :)
Messages postés
126
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
15 février 2005

Merci

to solution 1 ne fait pas de thread donc au chargement de la dll si j'appel la fonction, je resterais bloqué dans la bovle de récption en UDP? non?
rappel: la fonction que je souhaite exécutée en arrière plan est en faite une réception UDP qui tourne en boucle ... ( while(1) .....)

Donc dans cette solution aussi je dois utiliser les threads?

merci
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
En fait pour la solution 1, peut-être ou peut-être pas il faut tester.

La solution 2 te paraitre plus adaptée car CreateThread exécute une fonction en arrière plan.

Core Breaker :)