[Syntaxe] Type de fonction

Type de fonction [Syntaxe] - C - Programmation

Marsh Posté le 13-08-2004 à 22:49:40    

Quelqu'un pourrait m'expliquer ceci :
 

[#ff9b00]LRESULT CALLBACK[/#ff9b00] MainWndProc (HWND hwnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{


 
Comment une fonction peut avoir deux types de retour?
(ca viens des progs d'exemple de Dev-C++, gcc+mingw32).
 
merci :)

Reply

Marsh Posté le 13-08-2004 à 22:49:40   

Reply

Marsh Posté le 13-08-2004 à 23:15:39    

eu... non CALLBACK c'est pas vraiment un type retour, c'est plutot une macros de __stdcall

Reply

Marsh Posté le 14-08-2004 à 02:09:11    

Ce serait donc des instructions qui s'executent avant la fonction elle meme?

Reply

Marsh Posté le 14-08-2004 à 09:34:38    

Non, c'est pour indiquer le format de passage des arguments il me semble.

Reply

Marsh Posté le 17-08-2004 à 10:27:41    

CALLBACK c'est pour dire que c'est une fonction appeler par le systéme ( pas par le programmeur)
Notamment la il s'agit d'une winproc soit la fonction appelé par windows ( qui doit etre enregistré) pour la gestion des messages en mode fenetré

Reply

Marsh Posté le 17-08-2004 à 20:22:32    

cricri_ > tu confond sans doute avec __fastcall qui permet de mettre les arguments en registre (quand c'est possible)

Reply

Marsh Posté le 18-08-2004 à 00:41:41    

donc ce CALLBACK est la pour indiquer au systeme que c'est bien la fonction qu'il doit appeler pour communiquer les infos avec 'la fenetre' ?
ou ca signifie que la fonction winproc implemente un modele de fonction systeme (un peu comme les implementations des classes avec Java) ?

Reply

Marsh Posté le 18-08-2004 à 13:32:00    

rien a voir avec les class  
une winproc n'est ni plus ni moins un gestionnaire de message
Des que ta fenetre reçoit un message , le systeme appele ta winproc en fournissant le handle , le message....
A toi dans la winproc de gerer les messages comme tu veux
C'est un gestionnaire de message si tu veux

Reply

Sujets relatifs:

Leave a Replay

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