站内搜索

『VC++技术内幕』学习笔记(1)

作者:雷神
转载请联系作者

写在前面:

    我看的『VC++技术内幕』版本为--潘爱民和王国印译清华大学出版的第四版,因从网上看到此版译的最好。

    这篇学习笔记是后补的,因为这本书我已经看到了第三十二章,之前并没有做笔记,只是随意的在书上画了画重点,可是越向后学越觉得前面的知识并没有掌握,所以决定重新来过并补上笔记。我认为只有踏踏实实的记录下每天的学习心得才能真正的有所收获。我个人认为学习这本经典之前最好先看看WINDOWS 32位编程的书,至少能用纯SDK写出一些小程序。

第一天:

    WINDOWS应用程序一定要有WinMain函数,该函数用来完成一些特殊的任务,象创建程序的主窗口,主窗口用来处理消息的代码。MFC将WinMain隐藏在框架中,不象写SDK程序时可以很容易的找到它。

    WINDOWS采用的消息处理机制也交给了程序框架,我们不必担心如何使这些消息和代码联系起来。并且WINDOWS定义好了一些消息,当窗口被创建时系统就会发送WM_CREATE消息,当点击鼠标左键时便系统会发送WM_LBUTTONDOWN消息,当用户按下键盘时系统会发送WM_CHAR消息,当用户关闭窗口时系统会发送WM_CLOSE消息,当用户进行菜单项选择或单击按钮时系统回发送WM_COMMAND消息,什么都不做系统还会发送WM_TIMER消息。先不说别的,先搞清出这几个消息再说。从MSDN中可以很方便的找到关于这几个消息的帮助文档。

WINDOWS提供通用的图形设备接口(GUI),我们通过调用(GDI)函数和硬件打交道,不必理会设备环境,WINDOWS会自动将设备环境结构映射到相应的物理设备,这应该就是设备无关性吧。
动态连接库(DLL)应该是代码重用的典型例子(不知道可不可这样说),把一些模块、自己新编的类单独调试并编译成DLL,及增加代码的可读性也提高了程序模块的灵活性。

用Developer Studio建立项目Developer Studio会创建很多中间文件,这些文件还是有必要说一下的。

APS //支持ResourceView
BSC //浏览器信息文件
CLW //支持ClassWizard
DSP //项目文件,不能删除和用文本编辑器编辑
DSW //工作空间文件,不能删除和用文本编辑器编辑
MAK //外部的创建文件
NCB //支持ClassView
OPT //保存工作空间的配置
PLG //建立日志文件


这些文件都有一定的作用,拿CLW来说,如果你有一个新类,需要加到ClassWizard中,除了将相应的.h 和.cpp加到DSP中还需要重新编译CLW。PLG文件记录着你的项目配置信息。

VC++的源程序浏览器能够使我们从类或函数的角度来了解或编辑程序,而不是直接从文件入手。在看别人的源代码时如果能熟练的使用源代码浏览器将会事倍功半。源程序浏览器主要的查看状态有以下几种:

Definitions and References――选择任何函数、变量、类型、宏定义可以看到它在项目中的定义,并且在何处和什么地方用到它。

Call Graph/Caller Graph――对于所选择的函数,给出它的调用与被调用函数的图示。

Derived Class Graph/Base Class Graph――给出类层次关系的图形表示,可以看到所选择的类的派生类和基类以及成员。

File Outline――对于所选的文件,列出文件中的类、函数和数据成员,同时还显示它们定义的位置和使用位置。

可见Source Brower比起Class View来功能多了很多也更加好用,以前我就不知道,因为一般的VC++书没有讲或根本没有注意这块,看到讲菜单、操作界面、编辑器时总是跳过,心想“没吃过猪肉还没见过猪跑?这种东西不用学就会”。可实际上还是应该仔细的看看的。

对于本章学习雷神建议大家在VC++6中用AppWizard生成一个空的程序,然后试着看看都有那些文件,和他们的类层次、函数、宏、结构的定义,我就是这样干的,学编程不动手是不行的。

(未完待续)

  • 上一篇:『VC++技术内幕』学习笔记(2)
  • 下一篇:高手必修:关于FoxMail的深入研究