__stdcall [Résolu]

Signaler
Messages postés
134
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
14 novembre 2009
-
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
a quoi sert __stdcall dans:
void __stdcall function()

9 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
vecchio56 : __stdcall ne marche justement pas avec un nombre variable d'argument vu que c'est la fonction appelée qui se charge de dépiler les paramètres (il faut donc lui passer le bon nombre). c'est __cdecl qui permet un nombre quelconque d'argument car c'est la fonction appellante qui se chargera de dépiler (elle sait donc combien elle a empiler de paramètres)
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
function() depilera les param au lieu que soit l'appelant qui le fasse.

ciao...
BruNews, MVP VC++
Messages postés
134
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
14 novembre 2009

qui peut m'exiplicaer plus simplement?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Le passage des paramètres se fait sur la pile, de droite à gauche, et la fonction appelée est chargée de dépiler ses paramètres.
__stdcall implique aussi qu'une fontion f dont la somme des taille des arguments est N s'appellera _f@N, par exemple _f@4 pour une fonction du type void __stdcall f(DWORD d)
Messages postés
134
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
14 novembre 2009

en claire ça sert a quoi car je suis nul en pile et pointeur
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
C'est obligatoire pour les fonction a nombre d'arguments variable (printf). Et a quoi ca sert? De toute facon il faut bien choisir une méthode pour le passage des paramètres

http://msdn.microsoft.com/library/FRE/vccore/html/_core_.2f.gd.2c_2f.gr.2c_2f.gz.asp
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Oui c'est ce que je voulais dire bien sur (non attend je comprends pas pourquoi...)
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
vecchio56 > un gros dodo s'impose.

ciao...
BruNews, MVP VC++
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
vecchio56> __stdcall laisse le "dépillage" des parametrès aux bon soin de la fonction appellé. La fonction appellé n'a aucun moyen de connnaitre le nombre de paramètres passé a la pile.

A l'inverse, __cdecl oblige la fonction appellante a dépiller elle meme les parametres qu'elle passe sur la pile.
Ainsi tu peux créer des fonctions à un paramètres variables.

En gros ce qu'il faut retenir c'est que dans le cas d'une fonction a parametres variables, il n'y a que la fonction appellante qui connait le nombre de paramètres passé, d'ou l'attribut __cdecl.

Je pense ne pas mettre trompé, mais si c'est le cas .... bah corrigez moi.

Shell