PASCAL==CALLBACK==WINAPI==__stdcall

Posted 小乖乖~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PASCAL==CALLBACK==WINAPI==__stdcall相关的知识,希望对你有一定的参考价值。

VC里面:PASCAL==CALLBACK==WINAPI==__stdcall         _stdcall是Pascal程序的缺省调用方式,通常用于Win32  Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。     _cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式。VC将函数编译后会在函数名前面加上下划线前缀。是MFC缺省调用约定。 
        关于PASCAL,其实你只要弄明白一点就行了:声明为这种调用约定的函数都是由它本身来清栈,而__cdecl的函数都是由调用者来清栈。        实际用的时候,个人觉得两者最大的差别在于:__cdecl的函数参数个数可以声明为不确定,比如printf,scanf之类,而PASCAL的函数是不可以这样做的,如果这样的话它不知道实参有多少个。

以上是关于PASCAL==CALLBACK==WINAPI==__stdcall的主要内容,如果未能解决你的问题,请参考以下文章

[原]Universal Windows问题:winapifamily问题:WINAPI_PARTITION_DESKTOP问题:WINAPI_PARTITION_APP问题:WINAPI_FAMIL

C#。 WinApi。在窗口上绘制

自定义控件,winapi

pascal 教程

如何更改静态文本控件(winapi)的字体?

一天一门编程语言Pascal 语言程序设计极简教程