[C++] API Win32

API Win32 [C++] - C++ - Programmation

Marsh Posté le 21-06-2004 à 15:40:08    

Salut,
j'aimerais savoir ce que fait la fonction WaitForSingleObject(...) et GetOverlappedResult(...) de l'API Win32. Je l'utilise dans un morceau de mon code, mais je suis incapable de comprendre son role...et j'ai une soutenance de projet dans deux jour :(
Merci pour vos explications...
:hello:

Reply

Marsh Posté le 21-06-2004 à 15:40:08   

Reply

Marsh Posté le 21-06-2004 à 16:06:50    

WaitForSingleObject est une fonction qui attend un changement des éléments que tu donnes ... par exemple si tu passes en paramètre un HANDLE de thread / processus, WaitForSingleObject attendra qu'il se termine. Si c'est un HANDLE d'évènement, il attendra que l'évènement soit déclenché, etc


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 21-06-2004 à 18:50:55    

sbastitou a écrit :

Salut,
j'aimerais savoir ce que fait la fonction WaitForSingleObject(...) et GetOverlappedResult(...) de l'API Win32. Je l'utilise dans un morceau de mon code, mais je suis incapable de comprendre son role...


Elles doivent être utilisée dans le cas d'une lecture / écriture asynchrone (overlapped).
http://msdn.microsoft.com/library/ [...] ed_str.asp
En Win32  as 2 possibilités pour lire/écrire des données : synchrones (classique : la fonction de lecture/écriture ne te rend pas la main tant que la lecture n'est pas finie) ou asynchrone :
tu appelles ReadFile (par exemple) et elle se termine immédiatement, sans que la lecture ait été faite. Elle est lancée ou mise en attente si tu en as lancé d'autres.
Pour être averti quand une lecture est finie, au moment du ReadFile tu donnes un handle d'évènement via la structure OVERLAPPED. Il te suffit alors t'attendre que cet évènement soit déclenché via WaitForSingleObject et de tester ensuite le succès de la lecture via GetOverlappedResult.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed