回调函数通常放在一个库函数的参数里面,请问这个回调函数是在这个库函数返回时候,系统自动调用的吗?

解决方案 »

  1.   

    windows的回调函数一般是做通知用, 最长见的就是WndProc, 系统一但得到消息就要通知程序, 
    怎么通知? 调用你传给系统的WndProc就可以了.
    至于什么时候调用你要看对方什么时候需要调用了.
      

  2.   

    我的意思大家也许没有听明白。
    假如: 程序语句 myfuncion(fun1);myfuncion是某个lib库的函数,fun1是个回调函数。我问在什么情况下这个fun1回调函数会被调用?
      

  3.   


    当你响应fun1这个函数对应的消息后,系统通知其进行调用。
    但事前必须注册或定义好消息,随条件触发响应。
      

  4.   


    比如qsort(a1,a2,a3,callbackfun), 当然在它排序的时候调用了, 
    当然是myfunction决定什么时候调用的了.
      

  5.   

    回調函數, 說明一下什麼叫回調樓主就會清楚了.
    就如其名, 回調, 是在其他地方作為回復一樣的調用你的程序( 當然不隻限制於回復 ), 函數主體, 是你的程序寫的. 但是調用時間, 是由協作的對方調用的.
    至於什麼時候調用, 是由對控制的, 在調用的時候你要保証你的程序能夠正確運行這個回調函數的代碼就可以了. 包括WNDPROC也同樣, 是系統裡面有需要你的程序處理的消息的時候就去調用, 不管是什麼時候程序都要做好準備就是了. 準備不好就出錯了
      

  6.   

    回调函数就是函数指针的调用,你把你的函数地址给DLL,然后DLL在需要的时候通过函数地址调用你的函数.
      

  7.   

    就像写SDK的WndProc函数一样,由系统自动调用!
      

  8.   

    在我看来回调函数和普通函数没啥区别,只是一个是OS调用,一个是自己调用。
    OS调用也是在OS的函数里面,因为你已经把函数指针传给OS了,可以看看BOOL EnumWindows( 
      WNDENUMPROC lpEnumFunc, 
      LPARAM lParam 
    ); 
    的源码,LZ就明白了,我就是这么明白的,,,,