函数调用约定
字数: 0 字 阅读时间: 0 分钟
关于调用约定 (cdecl、fastcall、stcall、thiscall) 的一点知识 - 风雪之隅
函数调用约定是指一个函数调用另一个函数参数传递方式以及返回结果方式的约定。他主要规定:
- 参数压栈顺序
- 调用前谁来压栈,调用后谁来清栈
- 返回值如何返回
常见的调用约定有:
stdcall
cdecl
fastcall
thiscall
nakedcall
下面的内容需要一点 x86 和 ARM 汇编的知识。可参照:X86 汇编基础 - Hackeyes | Hackeye, arm 汇编语言学习笔记 | 安和桥南丶的博客
如何指定调用约定
在函数名前加 __callName
。例如:
C
int __stdcall function(int param1, int param2)
int __cdecl function(int param1, int param2)
int __thiscall function(int param1, int param2)