45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:Delphi中的参数传递方式详细分析

Delphi中的参数传递方式详细分析

2016-09-06 07:37:02 来源:www.45fan.com 【

Delphi中的参数传递方式详细分析

.参数传递方式:
Delphi中有自己的参数传递方式,而Windows API也有自己的参数传递方式,那么他们之间有什么不同呢,要如何做到兼容呢,尤其是在编写动态库时?
(1)cdecl:
通常是C/C++所使用的参数传递方式,它的传递方式是由右到左,而且当被调用的函数结束之后,将会由调用函数本身来清除堆栈上的参数数据.
(2)stdcall:
参数传递方式,也是由右到左,但是当被调用的函数结束之后,则是由被调用函数来清除堆栈上的参数数据,Win32API所有的输出函数都是采用此中参数传递方式
(3)pascal:
是Delphi1.0与win16API所使用的参数传递方式,它的传递方式是由左到右,而且由被调用函数来清除堆栈上的参数数据.
(4)fastcall:
是Delphi默认所使用的参数传递方式,此种方式在传递参数时把前三个参数放在CPU的EAX,EDX,ECX三个缓存器种,剩下的参数则会由左到右地被取出放到堆栈中,而当被调用的函数结束之 后,则是由被调用函数来清除堆栈上的参数数据.
注:所以在引用C++动态库中的函数时,要注意参数的传递方式,一般使用stdcall.还要注意字符串类型,C++在传递字符串时,都是采用字符指针的类型(Char *),所以你在Delphi的程序中就必 须使用PCHAR类型,而不是string类型.
 

本文地址:http://www.45fan.com/dnjc/73070.html
Tags: 中的 参数 Delphi
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部