关于c++编写窗口的API函数
intWINAPIWinMain()和LRESULTCALLBACKWindowProc()在C++中函数书上这样定义,数据类型+函数名,但这里数据类型后有两个名字,是怎...
int WINAPI WinMain()和LRESULT CALLBACK WindowProc()在C++中函数书上这样定义,数据类型+函数名,但这里数据类型后有两个名字,是怎么回事,是什么语法,还是C语言的什么东西,菜鸟求各位高手,谢了
展开
2个回答
2012-09-25
展开全部
WINAPI和CALLBACK都是宏, 这样定义的:
#define WINAPI __stdcall
#define CALLBACK __stdcall
实际上就是约定了函数的调用方式.
以下来自百度百科:
__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事:
1.参数传递顺序
2.调用堆栈由谁(调用函数或被调用函数)清理
常见的函数调用约定:stdcall cdecl fastcall thiscall naked call
__stdcall表示
1.参数从右向左压入堆栈
2.函数被调用者修改堆栈
3.函数名(在编译器这个层次)自动加前导的下划线,后面紧跟一个@符号,其后紧跟着参数的尺寸
在win32应用程序里,宏APIENTRY,WINAPI,都表示_stdcall,非常常见。
#define WINAPI __stdcall
#define CALLBACK __stdcall
实际上就是约定了函数的调用方式.
以下来自百度百科:
__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事:
1.参数传递顺序
2.调用堆栈由谁(调用函数或被调用函数)清理
常见的函数调用约定:stdcall cdecl fastcall thiscall naked call
__stdcall表示
1.参数从右向左压入堆栈
2.函数被调用者修改堆栈
3.函数名(在编译器这个层次)自动加前导的下划线,后面紧跟一个@符号,其后紧跟着参数的尺寸
在win32应用程序里,宏APIENTRY,WINAPI,都表示_stdcall,非常常见。
参考资料: http://baike.baidu.com/view/1276580.htm
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询