Que signifie __stdcall ? [Résolu]

Signaler
Messages postés
235
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2009
-
Messages postés
235
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2009
-
Bonjour à tous,

Alors voilà j'aimerais savoir que signifie __stdcall ? (devant une fonction) Car j'ai passé 3 heures à essayer de résoudre un problème et je me suis aperçu par hazard que c'est par ce qu'il manquait __stdcall devant ma fonction :(

Pour info en réalité je fais un hook et je remplace la foncion de départ par la mienne, et il faut absolument que la fonction que je vais injecté est __stdcall devant .... Pouquoi ?

Merci d'avance de vos réponses.

5 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
__stdcall est une convention d'appel des fonctions. Les paramètres étant passés par la pile, son nettoyage se fait au sein de la fonction. Par défaut, le compilateur utilise la convention __cdecl. Ainsi, la pile doit être nettoyée dans le code qui appelle la fonction.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Voici un petit article à ce sujet: Conventions d'appel
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
C'est exactement ca.
Messages postés
235
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2009

Ok je te remerci !


En fait, moi j'avais un énorme plantage lorsque je sortais de ma fonction qui était en Cdecl (par défaut). Mon erreur venait surement que la fonction qui m'appelait attendait que ma fonction vide la pile hors elle ne le fessait pas et du cou la pile était encore remplie des paramètres, ce qui posa problème !


Je te remerci !! ;)


PS : Si mon explication n'est pas plausible corrige moi :)
Messages postés
235
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
6 octobre 2009

Merci à tous les deux :)