Was beutet __stdcall bei einer Funktionsdeklaration?

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Sagt __stdcall bei einer Funktionsdeklaration noch mehr aus als, dass die Funktion der Pascalaufrufkonvention folgt? (Paramter werden von Links nach Rechts auf dem Stack abgelegt und die aufgerufene Funktion ihre eigenen Werte von Stack nimmt bevor sie die Kontrolle zurück gibt (returniert))

Gruß Tom
 
moin


Guckst du MSDN:
Code:
The __stdcall calling convention is used to call Win32 API functions.
The callee cleans the stack, so the compiler makes vararg functions
__cdecl. Functions
that use this calling convention require a function prototype.

return-type __stdcall function-name[(argument-list)]
The following list shows the implementation of this calling convention.

Element Implementation 
Argument-passing order Right to left. 
Argument-passing convention By value, unless a pointer or reference type is passed. 
Stack-maintenance responsibility Called function pops its own arguments from the stack. 
Name-decoration convention An underscore (_) is prefixed to the name. The name is
followed by the at sign (@) followed by the number of bytes (in decimal) in the argument
list. Therefore, the function declared as int func( int a, double b ) is decorated as follows: _func@12 
Case-translation convention None 

The /Gz compiler option specifies __stdcall for all functions not explicitly declared with a different calling convention. 

Functions declared using the __stdcall modifier return values the same way as functions declared using __cdecl.


mfg
umbrasaxum
 
Zurück