我必须将类型Pointer
的参数传递给外部DLL中的函数。
答案 0 :(得分:9)
只需使用@MyProcedure
即可。
请注意它必须具有正确的调用约定(可能是stdcall
)。
您通常无法使用成员函数,因为它具有隐藏的SELF
参数。
class
static
方法的作用类似于通常的过程/函数。
答案 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);