使用回调函数要注意哪些问题,我在使用回调函数的时候,出现了点问题,就是退出回调函数的时候,出错了,提示的是无权去写某一内存..

解决方案 »

  1.   

    回调函数是一个普通的函数,写好以后,你可以把它的地址传给另外的函数或进程,交由 
    对方去调用。 
      比如窗口消息响应函数:WndProc ,这个函数写好以后,就在 WNDCLASS 结构中填入函数 
    地址,调用 RegisterClass 函数注册该窗口类,等于把函数的地址交给了操作系统。 
      当操作系统接收到发给这个窗口的消息的时候,就会调用你的 WndProc,这就是一个回调 
    函数的实质。 
    typedef struct _WNDCLASS {    // wc   
        UINT    style;  
        <font color = #ff0000><strong>WNDPROC lpfnWndProc; </font></strong> 
        int     cbClsExtra;  
        int     cbWndExtra;  
        HANDLE  hInstance;  
        HICON   hIcon;  
        HCURSOR hCursor;  
        HBRUSH  hbrBackground;  
        LPCTSTR lpszMenuName;  
        LPCTSTR lpszClassName;  
    } WNDCLASS;
      

  2.   

    补充一点,调用回调函数的那个函数是用VC写的一个DLL中的一个函数,,
      

  3.   

    回调函数就是写出来供系统在特定时刻调用,来完成用户自己定义的动作的函数,要注意的就是:1.函数的参数类型和顺序;2.注意函数的参数传递方式,都是stdcall(由函数提供方来负责相应堆栈的清除);3.名字可以不同,在需要的时候用指向这个函数的地址“@函数名”来调用。