begin process at 2012 05 30 12:57:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

__stdcall


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

__stdcall

lundi 27 décembre 2004 à 16:18:55 | __stdcall

alphaone

a quoi sert __stdcall dans:
void __stdcall function()
lundi 27 décembre 2004 à 16:40:32 | Re : __stdcall

BruNews

Administrateur CodeS-SourceS
function() depilera les param au lieu que soit l'appelant qui le fasse.

ciao...
BruNews, MVP VC++
lundi 27 décembre 2004 à 16:51:00 | Re : __stdcall

alphaone

qui peut m'exiplicaer plus simplement?
lundi 27 décembre 2004 à 17:23:34 | Re : __stdcall

vecchio56

Administrateur CodeS-SourceS
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)
lundi 27 décembre 2004 à 17:33:19 | Re : __stdcall

alphaone

en claire ça sert a quoi car je suis nul en pile et pointeur
lundi 27 décembre 2004 à 17:39:05 | Re : __stdcall

vecchio56

Administrateur CodeS-SourceS
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
lundi 27 décembre 2004 à 17:59:51 | Re : __stdcall

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)
lundi 27 décembre 2004 à 18:09:53 | Re : __stdcall

vecchio56

Administrateur CodeS-SourceS
Oui c'est ce que je voulais dire bien sur (non attend je comprends pas pourquoi...)
lundi 27 décembre 2004 à 18:22:05 | Re : __stdcall

BruNews

Administrateur CodeS-SourceS
vecchio56 > un gros dodo s'impose.

ciao...
BruNews, MVP VC++
lundi 27 décembre 2004 à 18:44:46 | Re : __stdcall

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


Cette discussion est classée dans : stdcall


Répondre à ce message

Sujets en rapport avec ce message

fastcall vs stdcall [ par gblade ] __stdcall ?? [ par fada09 ] Salut,Bon juste une petite question, je voudrais savoir à quoi cela sert de mettre __stdcall dans l'en-tête d'une fonction juste avant le nom de la fo PB DIALOGBOX (Win32) [ par moustachu ] Bonjour,Je dois recréer des projets VC++6.0 à partir des fichiers dont je dispose. Le problème se pose avec un fichier chgmod.rc. J'arrive bien à l'ou lire char* a dans Dll int _stdcall runappli(char* a) [ par Fwdavy ] Je realise une Dll c++, pour être lue par VB du style :int _stdcall runappli(char* a, char* b,int c) La Dll se lance bien mais je voudrais être sur qu erreur de compil [ par baptor ] salut à tous; J'essay de piloter les broches du port // sous windows XP et Vc++.J'utilise la dll inpout32.dll.J'ai deux erreurs de compilation et je __stdcall ? __fastcall ? Kesako ? [ par nightlord666 ] Bonjour ! J'aimerais juste savoir à quoi correpondent tous les "trucs" comme __stdcall, __fastcall... Est-ce que quelqu'un connait ? utilisation __stdcall [ par MarmottE73 ] bonjour,j'ai un petit problème. je doit utiliser une dll en c++ dans un programme mais c'est la premiere fois. j'ai deja vu sur des forum qu'on utilis Prologue stdcall [ par juju12 ] Bonsoir;Dans le but d'optimiser la rapidité d'appel de fonction dnas un prog, je veux écrire mes propres prologue-épilogue (__declspec(naked)) tout en 2 questions... [ par babaslow ] Hello,Voilà , j'arrive à lancer ma dll de la manière suivante :#include void __stdcall CALLBACK M2(char *s) {}int APIENTRY WinMain(HINSTANCE hInstance

Livres en rapport



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,328 sec (3)

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