__stdcall __cdecl之间的区别:该由谁来释放堆栈资源。
__stdcall 由被调用者来释放。大部分的Windows API均采用此方式。
__cdcel 由调用者来释放。c++中大部分采用但是此释放方式。
但对于可变参数列表,只能采用__cdcel,因为被调用者,不清楚函数调用时堆栈中参数的数量。
共同点:入栈方式都是从右到左。
参见的定义:
#define WINAPI __stdcall
#define WINAPIV __cdecl
#define APIENTRY WINAPI
#define APIPRIVATE __stdcall
#define PASCAL __stdcall