kkklko 2015-04-17 14:41 采纳率: 50%
浏览 1968
已结题

delphi使用函数指针调用函数第一个参数不能获取。

完整代码如下所示,定义了一个函数指针类型TFunctiontest = function (const a:integer; const b:integer; const c:integer): integer; 然后定义了一个指针变量。再定义了一个函数function functiona(const a :integer; const b:integer;const c:integer):integer;并将该函数的地址赋值给函数指针,然后通过函数指针去调用,希望得到的结果是1,2,3,但是没有得到第一个参数,求解答?

unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

TFunctiontest = function (const a:integer; const b:integer; const c:integer): integer;

var
Form1: TForm1;

implementation

{$R *.dfm}
function functiona(const a :integer; const b:integer;const c:integer):integer;
begin
showmessage(inttostr(a));
showmessage(inttostr(b));
showmessage(inttostr(c));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
pf : TFunctiontest;
const a:integer =1;
const b:integer =2;
const c:integer =3;
begin
pf := @functiona;
pf(a,b,c);
end;

end.

  • 写回答

3条回答 默认 最新

  • rainychan2009 2015-04-17 14:50
    关注

    这个没有问题啊,我执行过的。从代码上看不出什么问题

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!