__stdcall __cdecl之间的区别:该由谁来释放堆栈资源。

__stdcall 由被调用者来释放。大部分的Windows API均采用此方式。

__cdcel  由调用者来释放。c++中大部分采用但是此释放方式。

 

但对于可变参数列表,只能采用__cdcel,因为被调用者,不清楚函数调用时堆栈中参数的数量。

 

共同点:入栈方式都是从右到左。

 

参见的定义:

#define WINAPI __stdcall
#define WINAPIV __cdecl
#define APIENTRY WINAPI
#define APIPRIVATE __stdcall
#define PASCAL __stdcall

posted on 2010-05-09 20:59  漫步沙洲中  阅读(420)  评论(0编辑  收藏  举报