问题叙述如下:程序中用到了一个回调函数,是系统调用的,但是在调试程序的时候,没有办法让系统调用(就是此时不执行回调函数),所以就不能单步调试进入回调函数,不知道该用什么方法来调试回调函数。最后只能通过AfxMessageBox的方式来判断程序执行到哪里了,很不方便。请有这方面调试经验的朋友帮忙指点一下,谢谢!

解决方案 »

  1.   

    我描述的可能不是很清楚这个回调函数只有在SCM(windows的服务控制管理器)启动的时候才执行,我在调试的时候无法让SCM执行,所以回调函数就不会执行,设置断点有什么用啊
      

  2.   

    纳闷你能用AfxMessageBox,为啥就不能下个断点
      

  3.   


    我写了一个服务程序,其中用到了回调函数调试的时候,按F5,这时候程序里的回调函数不会执行,只有当系统重启,或者手动在services.msc服务管理器中手动启动我建的服务的时候,此时才会执行程序中的回调函数,但是,这个时候又没有办法调试,即,不是按F5启动的程序。所以没有办法设置断点进入回调函数请大家帮忙看看该怎么办?谢谢了!
      

  4.   

    比如用fstream fs(....);
    然后在需要的地方cout<<"log"<<endl;
      

  5.   

    在回调里加个断点或者MessageBox, 能中断一下服务即可, 
    注册服务启动之,
    VC里ctrl+alt+p附加你的服务进程.
    这样就能代码级调试了.
      

  6.   


    我用的vc6.0里没有ctrl+alt+p啊 
      

  7.   

    那就不知道了, 以前都用odb直接反汇编.
    后来就用我告你的方法, 现在ATL可以直接调试很方便, 不过VC6不行吧.