回 帖 发 新 帖 刷新版面

主题:LRESULT stdcall

我看了几天Delphi的书,学习写Delphi的程序.
小弟有一问题,看的不明白,请教各位大侠指点一下.
 function 函数名(参数:类型):LRESULT stdcall;这个函数是定义什么类型的函数? LRESULT stdcall是什么意识?
  lresult是不是Result加长了?stdcall是什么?[em10][em10]

回复列表 (共1个回复)

沙发

LRESULT = Longint;
  {$EXTERNALSYM LRESULT}
由此可知,LRESULT只是为了让代码更直观,让阅读者对类型的用途一目了然,起的一个“别名”。其实就是一个Longint类型

stdcall是一种约定,最直观的解释就是,它是一种函数参数压栈方式的约定。当然,它并不仅仅这么简单。
这需要你从网上搜一下与stdcall,register等约定相关的资料来看一下。
Delphi默认的压栈方式是register的,即:函数的前三个参数通过寄存器传递,其余参数通过栈传递。
而stdcall约定全部由栈传递。

我来回复

您尚未登录,请登录后再回复。点此登录或注册