Delphi指针语法

时间:2010-09-06 11:20:26

标签: delphi pointers

我必须将类型Pointer的参数传递给外部DLL中的函数。

  • 如何创建指向程序的指针,然后我可以将其传递给函数?
  • 我是否也可以将指向类成员函数的指针传递给外部函数,还是不起作用?

2 个答案:

答案 0 :(得分:9)

只需使用@MyProcedure即可。

请注意它必须具有正确的调用约定(可能是stdcall)。

您通常无法使用成员函数,因为它具有隐藏的SELF参数。

class static方法的作用类似于通常的过程/函数。

http://docwiki.embarcadero.com/RADStudio/en/Methods

答案 1 :(得分:0)

如果过程(或函数)是方法

,则创建此类型
type
  TMyProc = Procedure(x:Integer;y:Integer) of Object;

或者

type
  TMyProc = Procedure(x:Integer;y:Integer);

如果程序是独立的。

用法:

//Some class method
Procedure TfrmMain.Add(x:Integer;y:Integer);
begin
  ...
end;

//Another class method that uses procedure as parameter
procedure Name(proc : TMyProc);
begin
  ...
end;

//Call with:

Name(Add);