我现在在维护一个工程,该工程是由几个其它的 project 组成的,是用VC 写的,用的是VC6.0 ;关于该工程我没有任何的文档,只有这些代码,而且老大还给了时间限制,让我快速弄懂它!完全看懂是不可能的啦!我现在想请教那些有经验的前辈:怎样快速定位到一个变量或一个函数?这里的变量是指存储具体参数的变量,函数是指真正实现某功能的函数?因为时间紧,而且工程中的代码、函数超多……不知道从何处入手去查?请大家帮帮忙……

解决方案 »

  1.   

    如果是跟绘图有关,那么没有办法,只能用笔了!
    如果是MFC,主要看控件的关联
    如果是C++/API那么简单了,找入口函数吧
      

  2.   

    是用VC开发的应用程序,我也只是涉及到界面的修改工作;说是界面实际上就是窗口和菜单(这也是我看了好久才发现的问题……)通信用的就是WINDOWS的消息机制 ,不过我的工作没有涉及到这部分 ,单单就是界面而已……例如:将现有“提示窗口”中的文本字体颜色由原来的黑色改为红 ,显然很简单对不?可是,真正去查找相关函数及变量时,那感觉……时间稍微长点就感觉函数都不是函数了,感觉都看不懂了,实际上也就是那么回事……因为自己根本不知道怎样去进行这种修改工作 :仔细看代码时,函数都能看懂,感觉也很简单,但看完了才发现修改任务还没做 ;不去仔细研究代码时感觉自己就在机械的查找……
    工作的方法不对……
    都快疯了……
    关键时候感觉平台都跟你较劲,竟然还出现什么编译错误……唉!
    归根结底还是方法,方法很重要啊!
    同志们……
      

  3.   

    加油.支持你.
    有专门看代码的工具啊.source insight. 或者.Code Visualizer等等.
      

  4.   

    事实上,用VC习惯了且熟悉它的内部工具后,我觉得和source insight有的比,不过你要先完全熟悉它才行……
    有经验的同志们支持一下……
      

  5.   

    那得看那些代码复杂程度,以及代码写得是否“适用人看”以及有没有注释等。如果复杂程序高,代码写得乱七八糟,一点注释也没有,那就祝你好运。如果project比较复杂的话,就算有说明书什么的,要搞懂也不容易,不信?弄个openvpn或openssl的代码看下。
      

  6.   

    没办法的,这玩意儿跟经验有很大关系比如说,你看多了某个人的工程,那么下一个他给你的代码,你就能很快看懂。如果是不同人的,那还是经验,快速找到通用部分(估计即使coder再特立独行,也还是会有部分代码和他人代码风格相似的吧?),理解消化整个框架大致思想(项目规模不是huge级的话)。然后再深入研究细节难懂的。其实,直接问人家也是一种很快的方式。如果可能的话。哎,不知不觉,想起自己刚接触现在维护的这个项目时的情景,主要开发人员都走了,剩下的也是刚接触没多久的……问谁呢?-_-!