VC ++ 6.0中的回调函数

时间:2009-04-02 09:09:20

标签: visual-c++

什么是回调函数[CALLBACK EXPORT],它是如何工作的,是无限循环还是递归。 我在vc ++ 6.0中有一段代码可以解释它是如何工作的。

timer_result=SetTimer(NULL,1,(t*1000),Timerflow); //say t=2,or t=10,

===

void  CALLBACK EXPORT Timerflow(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime)
{
----
----
}

2 个答案:

答案 0 :(得分:1)

回调函数是从您自己的代码外部调用的函数,通常由操作系统调用。在您给出的示例中,SetTimer函数要求操作系统在经过固定时间后调用您的回调。

答案 1 :(得分:0)

这样的回调可用于以没有内置事件的语言(如.Net语言)提供事件处理。

您调用settimer函数,将指针传递给您的一个函数,这将在请求时间过去时调用。

Callback宏可以告诉前32位编译器如何传递API和函数之间的函数参数,请参阅this paper here的这个snippit

  

DLL回调以及为什么选择WINAPI   与CALLBACK相同

     

有可能   允许DLL重新调用   客户端代码,如果有用的话   你正在编写一个DLL来实现一个   回调函数,或设计一个   事件驱动的界面。这个概念是   客户端调用DLL中的函数,   向DLL传递一个指向函数的指针   住在客户端,和   DLL函数将重新调用   客户端使用指针。