请问各位大侠:回调函数在什么环境下运行?控制台程序可以运行回调函数么?同样的回调函数在控制台程序中不能自动调用,而在MFC的EXE中可以调用
谢谢!

解决方案 »

  1.   

    任何环境都可以运行阿。
    function A()
    {}function B(A *a)
    {
        a();
    }
      

  2.   

    只要是提供给系统调用的函数都可以称为"回调函数",因为我们通常写的程序,大部分函数都是供我们自己调用的,但win32 API或MFC的Class 里面提供了很多"函数指针"类型的参数.也就是把一个外部的函数地址当成一个参数传递给某个函数调用.这个外部函数就可以称为"回调函数".
    象SetWindowsHookEx/EnumWindowEx等函数都会让你提供一个外部函数,并将这个函数当成参数传递给它们.
      

  3.   

    回调函数本来就是一个非常普通的函数而已,唯一与普通函数不同的是.你把这个函数告诉另一个玩意,由人家另一个玩意来调用这个函数的.当然你自己想调它也完全可以.
    这"另一个玩意"可能是操作系统,或一个Class,或一个函数...
      

  4.   

    引用lizmei001(暗黑) “当然啊,控制台程序好像没有消息循环啊,一些窗口消息的回掉函数当然不能用”--没有消息循环,回调函数就不能用吧?