理解 Delphi 的类(十一) - 深入类中的方法[13] - 方法的调用约定

因为使用方法参数的不同, 所以有了调用约定.
譬如 Delphi 默认的是从左到右读取参数; Window API 是从右到左读取参数.

如果没有调用约定, Delphi 就无法使用由 C 语言编写的 Window API;
如果没有调用约定, 别的语言也无法使用由 Delphi 编写的 DLL 文件中的方法.

指示字参数读取顺序参数删除参数传递备注
register 左→右方法返回时自动删除参数前三个参数使用CPU的三个寄存器传递; 其他使用栈传递速度最快, 是 Delphi 的默认方式
pascal左→右方法返回时自动删除参数使用栈传递参数为兼容存在
cdecl 右→左由调用者在调用返回时从栈中删除参数使用栈传递参数调用来自用 C 或 C++ 编写的共享库, 一般用于非 Windows 操作系统
stdcall右→左方法返回时自动删除参数使用栈传递参数用于调用 Windows API
safecall右→左方法返回时自动删除参数使用栈传递参数用于调用 Windows 中的双重接口中的方法(除了继承自 IInterface 和 IDispatch 的方法)
nearWin16 位下的产物, 现在不用了
far
export


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值