MFC社区的一个帖子

来源:互联网 发布:变音器软件 编辑:程序博客网 时间:2024/04/28 09:35

主  题:   求助--如何看懂VC++项目的源程序 作  者:   jxnzhjgr () 等  级:   信 誉 值:   100 所属社区:   VC/MFC Visual C++ 资源 问题点数:   100 回复次数:   32 发表时间:   2006-6-24 10:44:56

我是一个VC++的初学者,别人给了个VC++项目的源程序,请问我如何能在短时间内看懂!并理出自己的思路.谢谢!!

 

mx17() ( 二级(初级)) 信誉:96 2006-6-25 0:09:58 得分: 0

看原码就像抓葡萄一样,得找把。抓住把就好说了。MFC程序以下几个函数很重要:
CWinApp::InitInstance()、CWinApp::ExitInitInstance()、CView::OnCreate()、
CView::OnInitUpdate()、CMainFrame::OnCreate()、CMainFrame::CreateClient()。

这些函数一般都含有创建和初始化的重要信息。顺着他们看就能逐渐理清程序的脉络。
由资源编辑器看代码也是不错的选择。比如想看某个按钮的代码,双击就是了。
还有,如果程序员代码写得很标准的话,那么各个构造函数,往往是成员变量赋初值的地方。
    不过要看SDK的代码就不是这样了,他们可没那么直观。
    SDK的关键函数:WinMain()、InitInstance()、WndProc()。
    得顺着WndProc()的switch(message)才能看清各个函数功能是怎样的。

   看代码还有重要的一点,就是看作者留下的注释。这对任何程序都很重要哦!

  Kerrie() ( 五级(中级)) 信誉:100 2006-7-4 10:20:11 得分: 0  

很少见,很难的问题!

在具备必需的编程基础知识后,试图理解一份完整的代码可以从以下几个方面入手:
1。首先运行以下程序,从外部角度感受一下有哪些功能。
2。了解代码中每个类的功能。看看文档,或者类的注释,那么仅仅是类名也能对类有个大致的印象
3。整理各个类之间的引用、包含等关系,从功能和实现角度,理出类的层次关系
4。在得出类的层次关系的基础,把重点放在各个层次的核心类中,往往核心类包含的功能较为多而复杂,争取明白它包含那几组接口,实现了那些功能。同时,这里重要的一点是,对于一些工具类,算法类,或者实现某些特殊系统功能的类,不管它多么复杂,代码多么长,只要不是类层次关系上的几个核心类,先全扔到一边去。
5。结合调试,不断验证修正你先前整理的类层次关系。
6。至此,你应该对功能有一个整体印象,也能找到实现对应功能的代码。回头翻一下你的任务安排,定位到对应的代码上,开始啃吧,到这里已经没有多少花招可言了。

 

  Stefine(混来D五个裤叉,反思&努力ing) ( 五级(中级)) 信誉:100 2006-7-9 11:26:43 得分: 0

 这事情看着看着就有经验了

非常支持Kerrie() 的见解

一般来说从整体上了解这东东做什么用,(运行EXE程序看看菜单下提供了哪些功能,等,也就是熟悉这东东,只要了解它的功能即可)

根据它有的功能去找对应实现的核心类,(与辅助类的划分,也就是Kerrie兄所说的类层次问题),在这个层次里的先考虑!

哎,也一言难尽,大都又与Kerrie兄的差不太多,不必写了

呵呵,我看源码,一般就只看到这层,当自己需要深入时再研究

 

原创粉丝点击