Exécuter une fonction en arrière plan

cs_sena Messages postés 126 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 15 février 2005 - 23 avril 2003 à 12:02
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 23 avril 2003 à 20:33
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

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
23 avril 2003 à 14:08
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 :)
0
cs_sena Messages postés 126 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 15 février 2005
23 avril 2003 à 14:49
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
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
23 avril 2003 à 20:33
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 :)
0
Rejoignez-nous