#Win32的入口函数WinMain前面的WINAPI有什么意义?
它是_stdcall 的一个宏。而_stdcall是一种调用约定,用于调用win32 API函数,哪它又作了什么约定呢?
1.参数传递顺序的约定
从右向左传递。
2.堆栈维护职责的约定
被调用的函数从堆栈中弹出自已的参数,
3.名称修饰的约定
例如:声明为 int func( int a, double b ) 的函数按如下所示进行修饰:_func@12。_是名称的前缀,12是参数总共有多少个字节数。哪它有什么作用呢?
编译时进入了符号表,在符号表中,就表示为 _func@12,在程序运行时,作为识别函数的依据。在函数重载时两个函数名都为func,编译器如何识别区分它们呢?就靠这个_func@xxx来识别。
4.参数传递的约定
按值,除非传递指针或引用类型。
04-13
935
