什么是回调函数[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)
{
----
----
}
答案 0 :(得分:1)
回调函数是从您自己的代码外部调用的函数,通常由操作系统调用。在您给出的示例中,SetTimer函数要求操作系统在经过固定时间后调用您的回调。
答案 1 :(得分:0)
这样的回调可用于以没有内置事件的语言(如.Net语言)提供事件处理。
您调用settimer函数,将指针传递给您的一个函数,这将在请求时间过去时调用。
Callback宏可以告诉前32位编译器如何传递API和函数之间的函数参数,请参阅this paper here的这个snippit
DLL回调以及为什么选择WINAPI 与CALLBACK相同
有可能 允许DLL重新调用 客户端代码,如果有用的话 你正在编写一个DLL来实现一个 回调函数,或设计一个 事件驱动的界面。这个概念是 客户端调用DLL中的函数, 向DLL传递一个指向函数的指针 住在客户端,和 DLL函数将重新调用 客户端使用指针。