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兄的差不太多,不必写了
呵呵,我看源码,一般就只看到这层,当自己需要深入时再研究
- MFC社区的一个帖子
- 下一代社区的帖子加分相关机制
- 一个帖子的启示
- 我是怎么用python采集wooyun社区帖子的。
- 几个适合学习虚幻4的社区和帖子
- 一个中国人写的帖子!!
- 感觉不错的一个帖子
- 一个帖子引发的思考
- 一个失恋女生的帖子
- 一个帖子引发的思考
- 一个令人深思的帖子!
- 一个lwip资料的帖子
- 北邮人论坛的一个帖子
- 社区帖子anti-spam综述
- 一个帖子
- 实现sohu社区′只看楼主′的功能,抓取连载帖子中楼主的所有帖子
- 三个月前的一个帖子的总结
- 无意间发现的一个帖子 ---转贴---
- 病毒警告!
- javascript小技巧
- smarty和html_QuikForm联合编程
- 用PEAR中的HTML_QuickForm_Controller轻松实现多页面处理
- PEAR/HTML/HTML_QuickForm学习
- MFC社区的一个帖子
- 名词解释:什么是RSS?
- 校验值对象——应用Visitor模式和反射
- 一些实验性质的程序
- 著名裸露女博客
- 学习oracle9i 笔记(2)
- 使用jsmooth 制作exe文件
- 做为一个合格的项目经理
- discriminating ;birthmark