在MFC中的执行顺序是这样的,首先Windows调用WinMain
函数,WinMain里面调用AfxWinMain函数,注意
你的代码现在来了,AfxWinMain函数调用对应你
程序的APP类(这个类是基于CWinApp的,CWinApp又是基于CWinThread的)的InitInstance函数,如果InitInstance返槐银回TRUE,就调用CWinThread的Run函数,这个函数你可以重载,但是一般不重载。在Run函数里面是Windows的消息循环,就是Win API编程里面的那个while循环以及TranslateMessage和DipatchMessage,当然MFC弄得比卜好较复杂,有一个PumpMessage的机制。当程序收到WM_QUIT消息之后,Run函数返回,紧接着型明铅CWinThread::ExitInstance会被调用,如果你重载了ExitInstrance则会调用你的。最后程序结束。如果InitInstance返回FALSE,那么Run函数就不会执行,直接调用ExitInstance,然后程序结束。有时候下断点并不是好主意,特别是对于调试关于显示/绘图的代码,这种代码如果想用断点调试你得把你的程序设置成总是前端显示的窗口,如任务管理器那样.
另外你可以在合适的位置让插入一些代码让扬声器发生如:插入MessageBeep,Beep等函数
还可以为程序创建一个控制台窗口,输出一些调试信息.还可以禅和使用文件来纪录调试输出信息.
如果使用控制台(就是DOS程序那样的窗口,在任何位置调用AllocConsole()就能得到一个)你最好封装一个专门输出调试信息的类或者一套完成此功能的函数,这样不用蔽埋每次都写程序都写一大段复杂的代码.我就是这样做的宏袭蚂.
这种控制台的输出要用WriteConsole以前的那种printf好像不能正常
这里有一系列控制台输出的文档:
http://msdn.microsoft.com/en-us/library/ms682073(v=vs.85).aspx
评论列表(0条)