Z
zxdcj
Unregistered / Unconfirmed
GUEST, unregistred user!
因为小弟的键盘前几天烧到了刚换了个,所以攒下了几个问题,迫切需要大家的帮助.<br>1:StdCall为何物,是什么意思?<br>2:回调函数是怎么回事,是不是DLL调用这个函数,然后再返回结果给过程,就相当于拐了一个弯?<br>3:如何让DLL调用回调函数,也就是说DLL是怎么调用这个回调函数的,望给解释一下.<br>4:<br>type<br> TWindowInfo=class<br> WindowName,<br> WindowClass:string;<br> end;<br>………………<br>//这就是那个回调函数,代码我明白,就是不知道它和DLL之间是如何配合的<br>function EnumWindowsProc(Hw:HWnd;AMainForm:TMainForm):boolean;stdcall;<br>var<br> WinName,CName:array[0..144]of char;<br> WindowInfo:TWindowInfo;<br>begin<br> Result:=True;<br> GetWindowText(Hw,WinName,144);<br> GetClassName(Hw,CName,144);<br> WindowInfo:=TWindowInfo.create;<br> with Windowinfo do<br> begin<br> setLength(windowName,strlen(winName));<br> setLength(WindowClass,strlen(CName));<br> windowName:=winName;<br> WindowClass:=strPas(CName);<br> end;<br> //lbWinInfo是TListBox<br> MainForm.lbWinInfo.Items.AddObject('',WindowInfo);<br>end;<br>………………<br>procedure TMainForm.btnGetWinInfoClick(Sender: TObject);<br>begin<br> EnumWindows(@EnumWindowsProc,0);//使用回调函数,但这里是怎么回事, //EnumWindowsProc怎么没有参数啊? <br>end;<br><br>问题很多,会占用大家很多宝贵时间,但大家不要不管我啊,我只有像大家那么厉害了才能帮别人啊,谢谢大家了!<br>