_cdecl 与 stdcall(pascal)

_cdecl 由调用者处理堆栈, c/c++使用这种方式. 这种方式能实现可变参数(就是printf里面的 "..."

stdcall (有时也被成为pascal) 大多数语言用这种方式,大多数api也用这种方式(除了支持可变参数的api) 我们可爱的com控件也用这种方式.

调用习惯不是绝对的,但是必须保证调用习惯的一致,如果接口成员函数使用了_cdecl,则大多数c/c++之外的语言不能使用这样的接口.

除非需要使用可变参数,否则就用stdcall

 

以上内容节选自 潘爱民 <<com原理与应用>>

你可能感兴趣的:(api,语言,pascal)