Date: 2017/3/18
参考:https://baike.baidu.com/item/__cdecl/9518056?fr=aladdin
1、函数调用协议:
__cdecl:C默认的,带可变参的函数调用协议;
__fastcall:编译器指定的快速调用方式;
__stdcall:C++默认的函数调用协议。
2、__cdecl调用方式详解
__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。
_stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this