看到有这样一句void CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)  
CALLBACK是什么呢?函数吗?怎么函数名后面还有TimerProc,我不明白void CALLBACK TimerProc 到底是什么意思?怎么有两个函数名?

解决方案 »

  1.   

    CALLBACK是一个类型 是_stdcall的调用约定  至于什么是调用约定  自己Google一下吧  
    另外 CALLBACK还起到了说明这个函数是回调函数的作用 
      

  2.   

    CALLBACK是个宏,表示堆栈调用约定,TimerProc是函数名
      

  3.   

    void CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
    void:函数返回值
    CALLBACK:__stdcall,这个宏定义说明他是作为回调函数
    TimerProc:函数名
      

  4.   

    CALLBACK是个宏,是为了让参数的作用一目了然
      

  5.   

    回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用方式,但客户程序也必须遵守相同的规定。在__stdcall方式下,函数的参数按从右到左的顺序压入堆栈,除了明确指明是指针或引用外,参数都按值传递,函数返回之前自己负责把参数从堆栈中弹出。