这两天在别人的程序中总看见函数申明中winapi,比方说int winapi ConnectPro(),int的作用当然不用说了,可是带上winapi有什么作用呢。各位大虾赶紧帮忙吧,30分。详细者多得分。
主要是声明函数的调用形式,即是函数调用时参数入栈的顺序
我在有的书上看见说:它和FAR PASCAL什么的好像等价
不知不是?
就是参数入栈的顺序啊,是由左向右入栈,还是由右向左,
一般C语言是由右向左入栈的,所以可以实现不定参数,如printf函数
WINAPI是一种调用方式的约定,一般来说WINDOWS的AIP函数都是采用这种调用方式的。
WINAPI的调用方式是比较保守的,就是采用PASCAL的调用方式,参数从右往左入栈。
其实
#define WINAPI __stdcall
#define WINAPI _stdcall
#define AFXAPI _stdcall
_stdcall 区别于 _cdecl;
前者从栈内取数;
后者是c/c++函数的默认调用方式,调用的函数从栈内取数。
#define WINAPI __stdcall
意思是参数是自调用返回的!
WINAPI是一种调用方式的约定,一般来说WINDOWS的AIP函数都是采用这种调用方式的。
WINAPI的调用方式是比较保守的,就是采用PASCAL的调用方式,参数从右往左入栈
从左往右压栈,然后返回的时候清理什么东东