begin process at 2012 05 29 04:58:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Fonction En Paramètre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction En Paramètre

lundi 29 août 2005 à 10:15:09 | Fonction En Paramètre

Joky

Membre Club
Hep Hello les gens :)

J'ai une question qui me tarrode l'esprit voyez vous
Exemple explicite

LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ); //Prototype

DialogBox( ..., ..., ..., (DLGPROC)WndProc);

Comment qu'elle fait la fonction DialogBox pour ne pas spécifier les paramètres ?
Fin bref, si vous aurez un exemple simple et explicite pour m'aider à comprendre ces machins lol :)
Merci bien

if(!Meilleur("Joky")) return ERREUR;

lundi 29 août 2005 à 10:17:37 | Re : Fonction En Paramètre

Joky

Membre Club
J'viens de lire et ça veut rien dire lol
Donc je reprend
J'ai compris que ça devait certainement être dû au pointeur de fonction, mais j'comprend pas comment on fait pour ne pas spécifier les paramètres de la fonction WndProc :^)

if(!Meilleur("Joky")) return ERREUR;<

lundi 29 août 2005 à 10:41:03 | Re : Fonction En Paramètre

JCDjcd

Réponse acceptée !

moi je peux de donner un exemple d'utilisation de pointeur sur fonction :
pour implementer mes routines d'arbres; l'appelant doit passer en paremetre un pointeur sur une fonction de comparaison (comme cela le code est générique).
Voici comment on declare la fonction, et comment on l'appelle avec des paramtres :

// definition du type pointeur sur fonction de comparaison
  typedef  int (*CMP_FUNC)(void *key1,void *key2,void *param);
// exemple de fonction de comparaison d'entier
int cmpInt(void *key1,void *key2,void *param)
{
int a,b;

UNUSED_PARAMETER(param);

a = (int)key1;
b = (int)key2;

if(a > b)       return CMP_MORE;
else if(a < b)  return CMP_LESS;
else            return CMP_EQUAL;
} // cmpInt()

// defintion d'un arbre AVEC la fonction de comparaison
  typedef struct tagTREE
    {
    int           nElem;    // nombre d'elements
    CMP_FUNC      cmpFunc;  // fonction de comparaison
    void         *param;    // parametre pour la fonction de comparaison
    P_NODE_TREE   root;     // racine de l'arbre
    }TREE,*P_TREE,**PP_TREE;

// exemple d'appel de la fonction pour la recherche d'un element
r = tree->cmpFunc(key,cur->key,tree->param);
// ce sont les routines d'arbres qui passe les parametres a la fonction
// la puissance des pointeur sur fonction, c'est qu'avec elle on peut faire enormemant de chose, juste en changeant la fonction passée, cela est tres utile pour le code générique.



Pourquoi faire simple quand on peut faire compliqué ?

lundi 29 août 2005 à 10:48:10 | Re : Fonction En Paramètre

Joky

Membre Club
Ouai okay mais tu utilises les paramètres quand même :)
Tandis que la fonction DialogBox n'utilise pas les paramètres de la fonction WndProc
Peut être qu'il sont obsolètes parce qu'une WNDPROC est toujours du même type je sais pas mais c'est bizarre lol

if(!Meilleur("Joky")) return ERREUR;

lundi 29 août 2005 à 10:54:28 | Re : Fonction En Paramètre

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
DialogBoxParam demande l'adresse d'une fonction, tu lui donnes donc tout est ok, je ne comprends pas ton problème Joky.

En plus, si tu as besoin du cast (DLGPROC) c'est que ta dialogProc est mal prototypée.

ciao...
BruNews, MVP VC++
lundi 29 août 2005 à 10:55:08 | Re : Fonction En Paramètre

cosmobob

Réponse acceptée !
salut,
DialogBox prend en parametre un pointeur vers la fonction callback, apres elle appelle cette fonction comme elle veut.
C'est DialogBox qui choisit les parametres avec lesquels elle va appeler la fonction callback, qui choisit notamment quand elle va appeler cette fonction (elle va le faire plusieurs fois d'ailleurs...), et pas celui qui appelle la fonction DialogBox.
c'est confus dans ta tete


lundi 29 août 2005 à 11:30:06 | Re : Fonction En Paramètre

Joky

Membre Club
Pfiuuu ouai quand même C'est très confu
J'vais reprendre des vacances moi lol :)
Merci quand même :p

Et au passage j'vois pas l'intérer d'utiliser des pointeurs de fonction plutot que les fonctions elle même

if(!Meilleur("Joky")) return ERREUR;<

lundi 29 août 2005 à 12:04:06 | Re : Fonction En Paramètre

JCDjcd

La reponse est simple : la fonction est un parametre, on ne la connait pas dans la routine, si tu te poses cette question, poses toi celle la aussi (elle est plus generale) : A quoi servent les arguments ?


Pourquoi faire simple quand on peut faire compliqué ?


Cette discussion est classée dans : fonction, exemple, paramètre, wndproc, explicite


Répondre à ce message

Sujets en rapport avec ce message

Exemple de EnumPrinters (qui fonctionne) en C++ [ par nico ] Je voudrais que mon programme puisse détecter l'imprimante par défaut utilisée par mon PC. Pour ce faire j'ai trouvé la fonction "EnumPrinters". Le pr Fonction atoi [ par LordBob ] Salut, en fait je voudrai savoir si la fonction atoi permet bien de transformé une chaine de caractere entré par un utilisateur par exemple en son eq thread sur WndProc [ par kidpigeyre ] G une fonction WndProc chargé de réaliser tout mon programme (application GUI) (avec fenetre windows) et jmerai pouvoir faire un thread de cette fonct Saisir une touche clavier (besoin d aide :) ) [ par vychnou ] Bonjour..je débute en C++, et j'aimerais trouver un moyen(par exemple une fonction)permettant ,sans passer par un cin ,d attendre la saisie d une touc question sur wndproc [ par leprov ] salut a tous.je debute en prog win32, alors je galere un peu. j'aimerais comprendre quelques details sur cette fonctionbon dites moi si je me trompe, Fonction ln [ par vecchio56 ] J'aimerais faire une fonction pour calculer un valeur approchée d'un logarithme (népérien par exemple). Je sais qu'entre -1 et 1 je peux utiliser un d appel a une fonction [ par cyb_dev ] Bonjour je debute en c et je souhaiterais savoir comment faire pour appeler une fonction.J'aimerais qu'un evenement dans mon programme (une variable à SetTimer,KillTimer [ par samki ] j essayes d utiliser la fonction SEtTimer mais j ai une erreur comme koi la fonction prend 3 paramètre,alors qu en MSDN j ai troub=vé qu il y a 4 para Langage C: Problème de retour de Pointeur dans une fonction [ par loic911 ] SalutJ'aimerais bien renvoyer l'endroit d'un pointeur sur un tableau a deux dimension à une autre fonction exemple: Problème de paramètre [ par jeromedu94 ] bonjour,je voudrais faire une fonction mais le nombre de paramètre à transmettre n'est pas fixe,  et je voudrais savoir comment il faut faire.C'est le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales