begin process at 2008 07 06 15:55:53
1 205 627 membres
195 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : __stdcall [ Archives / Au secours ] (alphaone)

__stdcall le 27/12/2004 16:18:55

alphaone
a quoi sert __stdcall dans:
void __stdcall function()

Re : __stdcall le 27/12/2004 16:40:32

BruNews
(Admin CS)
function() depilera les param au lieu que soit l'appelant qui le fasse.

ciao...
BruNews, MVP VC++

Re : __stdcall le 27/12/2004 16:51:00

alphaone
qui peut m'exiplicaer plus simplement?

Re : __stdcall le 27/12/2004 17:23:34

vecchio56
(Admin CS)
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)

Re : __stdcall le 27/12/2004 17:33:19

alphaone
en claire ça sert a quoi car je suis nul en pile et pointeur

Re : __stdcall le 27/12/2004 17:39:05

vecchio56
(Admin CS)
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

Re : __stdcall le 27/12/2004 17:59:51

ymca2003
Réponse acceptée !
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)

Re : __stdcall le 27/12/2004 18:09:53

vecchio56
(Admin CS)
Oui c'est ce que je voulais dire bien sur (non attend je comprends pas pourquoi...)

Re : __stdcall le 27/12/2004 18:22:05

BruNews
(Admin CS)
vecchio56 > un gros dodo s'impose.

ciao...
BruNews, MVP VC++

Re : __stdcall le 27/12/2004 18:44:46

DeAtHCrAsH
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


Classé sous : stdcall

Participer à cet échange

Livres en rapport

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS