mfc问题一:做了一个多文档框架程序,操作如下:“文件”---〉“另存为”,然后输入一个文件名,选择“保存类型”,按下“保存”按钮。我想做这两件事情
        1。选择“保存类型”后单步调试我的程序;
        2。按下“保存”按钮后单步调试我的应用程序,
请问我应该分别在哪个函数(或者类)中来做?mfc问题二:在一个工作区中有两个项目,一个生成lib库文件,另外一个生成exe文件(注意:这个exe文件调用前面提到的lib库)。现在我运行exe文件后,想要单步调试lib中的函数,请问该如何做这件事情?谢谢。

解决方案 »

  1.   

    一.
        可以在MFC\SRC\DOCCORE.CPP 的第251行附近设置断点,(OnFileSaveAs函数中),运行到DoSave时用F11跟进去就行,具体的选择类型时的位置你自己跟一下吧
    二. 
        可能不行,因为你说的那种lib应该是在exe编译时把函数的代码静态编译到exe文件中的,所以exe文件运行时不会把lib文件load到内存中,也就是不会直接在lib的代码上执行程序。
        这个只是我的猜测,反正我碰到过一个lib就是没有调试成
      

  2.   

    谢谢yinx的回答,第一个问题可以在OnFileSaveAs里面设置断点,第二个问题说的也有道理,不过我需要的是解决方案,也就是我必须调试我说的那个lib库里面的函数。希望有人能对第二个问题进行再次解答。另外yinx的分数结贴时一起给。
      

  3.   

    开二个VC,一个打开exe工程,一个打开dll工程,各自设断点,就可以调试了。
      

  4.   

    to wangweintk(枫杨),你那说的是dll,楼主说的是lib,一个是动态的一个是静态的,dll是在exe运行时把dll中的代码会被load到exe的代码空间中,所以可以调试,lib好像这样是行不通的
      

  5.   

    to  wangweintk(枫杨): 好像 yinx(★什么时候才能变成红色的) 说的是有道理的。
      

  6.   

    mfc问题二是可以的,其实调试的方法没有什么区别和exe中一样,在dll工程中你要调试的地方设断点就可以,
      

  7.   

    刚才试了,可以!!
    把你的lib工程加到exe工程的workspace中,然后把exe工程设为active,在lib源码里设置断点,调试你的exe,等用到lib时,程序就会在断点处停住。(当然,lib工程编译时要编成debug的然后exe编译时链结的lib也必须是debug的,这样exe的代码中才有lib的调试信息)还有一种方法,开两个vc一个打开你的工程。另一个不打开任何工程。
    然后运行你得exe,只要运行就行,不用调试(lib的要求同上)。
    在那个空的vc里选build-》start debug-》attach to process,然后选你的exe的进程,
    接着打开一个lib源文件,在里面设置断点。
    当exe调用lib,并执行到断点处时,程序就停下来了