__stdcall

被这个关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall 的前面部分由ecx,edx传), 函数调用在返回前要由被调用者清理堆栈。
这个关键字主要见于Microsoft Visual C、C++。GNU的C、C++是另外一种修饰方式:__attribute__((stdcall))

1函数调用约定

__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事:
1.参数传递顺序
2.调用堆栈由谁(调用函数或被调用函数)清理
常见的函数调用约定:stdcall cdecl fastcall thiscall naked call
__stdcall表示
1.参数从右向左压入堆栈
2.函数被调用者修改堆栈
3.函数名(在编译器这个层次)自动加前导的下划线,后面紧跟一个@符号,其后紧跟着参数的尺寸
在win32应用程序里,宏APIENTRY,WINAPI,都表示_stdcall,非常常见。

转载于:https://www.cnblogs.com/ph829/p/4250291.html

__stdcall函数调用约定相关推荐

  1. 函数调用约定 and 函数名字修饰规则

    使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有问题,但是链接的时候总是报告函数不存在(经典的LNK2001错误),有时候是程序编译和链接都没有错误,但是只要调用库中的函数就 ...

  2. C++语言学习(十二)——C++语言常见函数调用约定

    C++语言学习(十二)--C++语言常见函数调用约定 一.C++语言函数调用约定简介 C /C++开发中,程序编译没有问题,但链接的时候报告函数不存在,或程序编译和链接都没有错误,但只要调用库中的函数 ...

  3. cdecl、stdcall、fastcall函数调用约定区别

    论函数调用约定 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数.但是, ...

  4. C/C++函数调用约定

    关于 C/C++ 函数调用约定,大多数时候并不会影响程序逻辑,但遇到跨语言编程时,了解一下还是有好处的. VC 中默认调用是 __cdecl 方式,Windows API 使用 __stdcall 调 ...

  5. 【厚积薄发系列】C++项目总结12—函数调用约定导致的崩溃问题分析

    问题背景: 当时所在的项目集成准备发版的前几天,突然测试发现了一个崩溃问题.接到这个bug后,发现以前的版本是没有,可以确定这问题肯定是由于这几天开发提交的代码引起的.经过这几天版本二分法确定了首次出 ...

  6. MSVC中常见的几种函数调用约定

    MSVC中几种常用的函数调用约定 1. calling convention 1.1 cdecl 参数从右向左压入堆栈 调用方清理堆栈 名称修饰:函数名加前缀_ 1.2 stdcall 参数从右向左压 ...

  7. 3 种关键函数调用约定

    高级语言翻译成机器码后,计算机没有办法知道函数调用的参数个数.类型,也没有硬件可以保护这些参数. 另外,在C++中,因为重载的原因,所以对函数的命名方式和普通C语言并不一致,该方式称为名字改编. 函数 ...

  8. java函数调用约定_函数调用约定 (cdecl stdcall)

    函数调用约定 (cdecl stdcall) 在 C 语言里,我们通过阅读函数声明,就知道怎么携带参数去调用函数,也能在函数体定义内使用这些参数.但是 CPU 并不直接完成函数调用的传参操作,这需要人 ...

  9. 9.逆向-函数调用约定

    函数调用约定:是对函数调用时参数如何传递的一种约定.调用函数先把参数压入栈然后再传递给函数.栈就是定义在进程中的一段内存空间.向下(低地址方向)扩展.且其大小被记录在PE头中.也就是说,进程运行时确定 ...

最新文章

  1. 在Prefetcher中取消robots.txt的限制
  2. LOJ - #117. 有源汇有上下界最小流(有源汇有上下界的最小流)
  3. matlab绘制三维图形
  4. 一文详解深度学习在命名实体识别(NER)中的应用
  5. Docker-pull
  6. 微信和简书输入框文本选择手柄小bug
  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_1_字符编码和字符集...
  8. Oracle函数——COALESCE
  9. office WPS同时安装,WPS卸载后,文档图标异常解决办法
  10. 硬件工程师要学习的东西
  11. PPT文件解除编辑限制密码
  12. BZOJ 2006超级钢琴
  13. App ID申请(将项目中的ID向苹果申请)
  14. 5G无线定位技术标准化及发展趋势
  15. IOT演进,数据觉醒
  16. 上海亚商投顾:信创概念掀涨停潮
  17. 2014年度企业云存储盘点
  18. 新氧运营三箭齐发,带领医美行业穿越发展迷雾
  19. 2008圣诞新年祝语之师长、上司篇
  20. 脚本录制工具__UIRecorder使用说明文档

热门文章

  1. 公共技术点之 Java 注解 Annotation
  2. menuStrip之MdiWindowListItem判断子窗口是否被打开的方法
  3. 通过CISA的一些经验分享(原文写于09年)
  4. 你把别人看透了 别人就看不透你了
  5. trang.jar转换xml到Javabean
  6. 构造函数和复制函数java_什么是Java构造函数?
  7. 深圳增强互动科技_增强女性在科技领域的十项原则
  8. keras 微调整模型_如何围绕微服务调整团队
  9. 开源图书馆系统Evergreen奖励社区
  10. 设计模式 里氏替换原则