调用约定,即调用方式影响调用函数时参数的传递方式和函数后栈的回复访求,
几种约定:
_cdecl;_stdcall;_fastcall
入栈: 前两者都是参数从右向左入栈,后者使用ECX,EDX,寄存器传递,余下部分翻出从右向左存入栈。
恢复栈: _cdecl:是有调用者将esp和ebp指令恢复到调用前状态;
_stdcall:是有被调用函数将栈恢复到调用前,方便调用函数继续执行。
很多API声明中都有 #define WINAPI _stdcall,都是在宏里面了定义好了的。
一般情况下:windows API都是是使用_stdcall调用方式,main函数使用-cdecl调用约定