在DELPHI定义回调函数应该将该函数/过程定义为类或数据类型如
TmyCallBack=function():boolean;stdcall;
定义回调函数
function myCallBack:boolean;
begin
//code.....
end;在调用时使用如下:
procedure MyCallBackSmaple(MyCall:TmyCallBack);
begin
if assigned(MyCall) then//检查MyCall是否为空
MyCall;
end;
TmyCallBack=function():boolean;stdcall;
定义回调函数
function myCallBack:boolean;
begin
//code.....
end;在调用时使用如下:
procedure MyCallBackSmaple(MyCall:TmyCallBack);
begin
if assigned(MyCall) then//检查MyCall是否为空
MyCall;
end;
//Forms.pas FClientInstance := Classes.MakeObjectInstance(ClientWndProc);
FDefClientProc := Pointer(GetWindowLong(FClientHandle, GWL_WNDPROC));
SetWindowLong(FClientHandle, GWL_WNDPROC, Longint(FClientInstance));
//...
SetWindowLong(FHandle, GWL_WNDPROC, Longint(FObjectInstance));//不管是C还是Pascal,指针都是很重要的数据类型,因为一切数据都必须有存放的空间及其存放的内存地址
//Object Pascal中通过运算符@或者函数Addr取得数据存放的位置function EnumWindowsProc(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
begin
TMemo(lParam).Lines.Add(Format('%.4x', [hwnd]));
Result := True;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(Addr(EnumWindowsProc), Integer(Memo1));
//EnumWindows(@EnumWindowsProc, Integer(Memo1));//Addr -> @
end;
有这些方法都不行。
全局函数可以但成员函数就不行了。
Help me!
这是什么意思?
可不可给我一个详细一些的?我的问题:type
TMyClass = class
private
procedure ThreadListen(value :Longint);stdcall;
.
.
.
end;
现在我需要得到 ThreadListen 的地址?
如何去做?