cs_fada09
Messages postés24Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention 3 août 2004
-
7 avril 2004 à 13:38
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
8 avril 2004 à 16:03
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 fonction? Désolé si ma question est un peu con mais j'ai cherché dans MSDN et j'ai rien trouvé qui m'éclaire. :sad)
Une autre petite question : Si j'ai stdafx.h inclus, j'ai des trucs qui marchent pas comme par exemple ShellExecute(...);
ou encore une structure OPENFILENAME. Je vois pas trop le rapport avec Stdafx.h mais bon...
Merci d'avance à tous ceux qui pourrons m'aider simplement
bye
~~ Fada ~~ ;)
cs_fada09
Messages postés24Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention 3 août 2004 7 avril 2004 à 16:55
Tout d'abord merci d'avoir répondu.
Pour __fastcall tu le met dans toutes les fonctions ???
J'ai fait l'include windows.h (en premiere position dans mes includes en plus) et ça marchait toujours pas. Enfin c'est pas grave si je vire stdafx.h plus de pbs
cs_fada09
Messages postés24Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention 3 août 2004 7 avril 2004 à 16:55
Tout d'abord merci d'avoir répondu.
Pour __fastcall tu le met dans toutes les fonctions ???
J'ai fait l'include windows.h (en premiere position dans mes includes en plus) et ça marchait toujours pas. Enfin c'est pas grave si je vire stdafx.h plus de pbs
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 7 avril 2004 à 16:58
met le sur les fonctions qui ont des parametres seulement si il ya reel besoin de vitesse, mais n'en abuse pas car g crois que ca bouffe du registre cpu (lol, faudrait que g verifi)
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 8 avril 2004 à 04:34
lors de l'appel à une fonction qui prend des paramètres, il y à 2 façons de les lui donner :
- par les registres (__fastcall).
- par la pile (__sdtcall, __cdecl).
lors du passage de paramètres par la pile, il y a donc 2 cas:
__stdcall : c'est la fonction appelée qui se charge de dépiler les paramètres lors du retour.
__cdecl : c'est la fonction qui appelle sui se charge de dépiler.
donc lorsqu'une fonction est __stdcall, il faut lui donner le bon nombre de paramètres sinon ça plante.
losqu'une fonction est __cdecl, on peut lui-donner un nombre quelconque de paramètres (comme les fct printf).
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 8 avril 2004 à 16:03
__cdecl est la convention d'appel par défaut du des fonctions en C (le mot clé lui est peut -être spécifique au compilo mais ca se trouve dans les options normalement)