stdcall

转载 2007年09月22日 10:06:00

读者可能会注意到上面的_stdcall这个词,它实际上是 Microsoft 。对

编译器的一个扩展,任何一个支持开发下win32应用程序的编译器都会有此

或与此等价的选项。例如. Borland ,watcom  的编译器均有些选项。用

_stacall标记的函数将使用标准的调用约定,即这些函数将在返回到调用

者之前将参数从栈中删除,Pascal函数对于栈的处理使用的也是同一种方

式.在常规的C/C++调用约定中,栈的清理工作则是由调用者完成的.大多数

其它的编程语言,如Visual Basic缺省情况下使用的也是标准的调用约定,

标准调用约定名称的由来在于所有的win32 api函数,除了那些带有变参的

外,使用的都是这种调用方式,带有变参的函数所用的仍然是C调用约定,即

_cdecl,windows采用标准的调用 约定的原因在于这种约定可以减少代码

的大小 ,另外还有一个原因是早期的Windows运行于640KB 的系统上的。

Microsoft平台上 CoM 接日所提供的所有函数使用的均是标准的调用约定

。参数数目可变的通数便用的则是 c 调用约定。一般人们希望接口的实

现使用这些约定,但要说明的是这并不是com的绝对需要,开发人员可以选

择使用另外的某些调用约定. 

_stdcall函数调用约定详解

对_stdcall 的理解 在C语言中,假设我们有这样的一个函数:int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这...
  • lanmeng_smile
  • lanmeng_smile
  • 2014年06月07日 11:43
  • 1681

__stdcall 与 __cdecl 区别 (汇编 call ret 时,栈的变化)

__cdecl C++ void fun(int a)   //默认__cdecl {  cout } int main() {  fun(3);  system("pause");  ret...
  • WMJ75617718
  • WMJ75617718
  • 2014年03月17日 00:35
  • 1363

【C++进阶】__stdcall 详解

【C++进阶】__stdcall 详解     __stdcall用来修饰函数,被该关键字修饰的函数,其参数都是从右向左依次被压入到栈中,函数调用在返回前需要清理堆栈,被调函数在返回前负责清理堆栈...
  • fu_zk
  • fu_zk
  • 2014年02月14日 16:54
  • 1750

stdcall详解教程

  • 2016年10月27日 15:10
  • 50KB
  • 下载

stdcall与cdecl的区别-16.09.20

  • 2016年09月20日 22:49
  • 70KB
  • 下载

动态链接库(stdcall def 等等)(博客相关代码)

  • 2013年05月28日 16:12
  • 2.23MB
  • 下载

C语言学习心得一:__stdcall、__cdcel和__fastcall三者的区别

__stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。如下图所示,可以在IDE环境中设定所有函...
  • lichen18848950451
  • lichen18848950451
  • 2017年04月12日 20:12
  • 138

cdecl和stdcall等函数调用约定(function call convention)的区别与联系

我们知道,函数调用是靠栈来实现的,编译器帮助我们做了压栈和恢复堆栈工作,使我们在调用任一个函数时,都不用进行压栈和恢复堆栈工作。而又由于实现的方式很多,那我们怎么告诉编译器按照哪种方式呢? ...
  • hongchangfirst
  • hongchangfirst
  • 2013年04月07日 10:02
  • 2114

汇编学习第五课之函数调用约定:cdecl,stdcall,fastcall

1. 函数调用约定介绍函数调用约定(Calling Convention),是一个重要的基础概念,它规定了程序执行过程中函数的调用者(caller)和被调用这(callee)之间如何传递参数以及如何恢...
  • haolipengzhanshen
  • haolipengzhanshen
  • 2016年05月11日 15:00
  • 676

【C++】__stdcall,__cdecl和__fastcall的作用 函数调用规范_空...

__stdcall,__cdecl和__fastcall的作用 1)调用约定 被以下几个修饰关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall的前面部分由ecx,edx传...
  • zacklin
  • zacklin
  • 2012年03月23日 17:41
  • 404
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:stdcall
举报原因:
原因补充:

(最多只允许输入30个字)