友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
一世书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

深入浅出MFC第2版(PDF格式)-第69章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






     



关于工具设定 



     我们当然有机会设定编译器、联结器和RC 编译器的选项。图4…5 是两个设定画面。 



                                                                                                 241 


…………………………………………………………Page 304……………………………………………………………

               第篇    欲善工事先利其器 



               图4…5a 选择Visual C++ 的 【Project/Setting。。。】,  出现对话框。选择 



                      【C/C++】附页, 于是可以设定编译器选项。 



                图4…5b 选择Visual C++ 的 【Project/Setting。。。】,出现对话框。选择 【Link】 



                       附页, 于是可以设定联结器选项。 



242 


…………………………………………………………Page 305……………………………………………………………

                                             第4章    Visual C++  整合開發環境 



     图4…5c 选择Visual C++ 的 【Tools/Options。。。】,  出现对话框。选择 



      【Format】附页, 于是可以设定程序代码编辑器的字型与大小…。 



Source Browser 



     好的Browser (浏览器)是令人难以置信的一个有用工具,它把你快速带到任何你所指 



     定的符号(symbol,包括类别、函数、变量、型别或宏)的出现地点。基本上Browser 



     揭露两件事情:位置(places )和关系(relationship )。它可以显示某个符号「被定义」 



     以及「被使用到」的任何位置。下面就显示名为CScrib*  的所有类别: 



                                                                       243 


…………………………………………………………Page 306……………………………………………………………

              第篇    欲善工事先利其器 



              选按Visual C++ 之【Tools/Source Browse。。。】菜单,出现以下对话框。在【Identifier】字段 



              键入“ CScrib*” ,并在【Select Query】清单中选择【Definitions and References】: 



              于是激活Browser,列出所有名为CScrib* 之类别。选择其中的CScribbleApp,右框之中就会填 



              入所有它出现的位置(包括定义处以及被参考之处)。双击其中之一,你立刻置身其中,文字编辑 



              器会跳出来,加载此档,准备为你服务。 



              Browser 也揭露类别之间的关系以及类别与函数之间的关系。MFC 类别彼此叠床架屋, 



              只以一般的文字编辑器(或如grep 之类的文字搜寻器)探索这些关系,就好象划一艘 



              小船横渡太平洋到美利坚一样地缓慢而遥远。Browser 使我们在跋涉类别丛林时节省许 



              多光阴。以下显示应用程序中所有衍生自CObject 的类别。 



244 


…………………………………………………………Page 307……………………………………………………………

                                           第4章    Visual C++  整合開發環境 



观察应用程序中所有衍生自CObject 的类别。请选按Visual C++ 之【Tools/Source Browse。。。】 



菜单,出现对话框。在【Identifier】字段键入”CObject” ,请注意我选择的【Select Query】清 



单项目是【Derived Classes and Members】。 



于是获得CObject 的所有衍生类别。请注意【Functions】栏是Virtual,【Data】栏是All。 



 此时Browser 出现三个窗框,左边那个不论外观或行为都像文件总管里头的目录树,右边两个窗 



 框显示你所选定之类别的详细信息。 



                                                                        245 


…………………………………………………………Page 308……………………………………………………………

               第篇    欲善工事先利其器 



               Browser 提供这些【Functions】项目供观察: 



               Browser 提供这些【Data】项目供观察: 



               Browser 系从一个特殊的数据库文件(。BSC )取得信息,此文件由Visual C++ 整合环境自 



               动产生,非常巨大。如果暂时你不想要这个数据库,可以把图4…5a 中的【Generate browse 



               Info 】选项清除掉。而当你需要它时,选择【Tools/Source Browse。。。 】,整合环境就会问 



               你是否要建立。BSC 档。 



               提供给Browser  的资料(。BSC )很类似除错资料,两者都包含程序的符号信息。不同的 



               是,除错资料附含在EXE 文件中,Browser 所需资料则独立于。BSC 档,不会增加EXE 



               文件大小(但会增加程序建造过程所需的时间)。 



               现在我打算观察InitInstance 函数。我在Browse 对话框中键入InitInstance 并选择【Definitions 



               and References】,于是出现如下画面。双击其中的CWinApp::InitInstance,右框显示此函数原 



               始定义于e:msdevmfcincludeafxwin。h #4039 行;再双击之,编辑器于是加载此档。以此方式 



               观察MFC 源代码十分方便。 



246 


…………………………………………………………Page 309……………………………………………………………

                                         第4章    Visual C++  整合性軟體開發環境 



Online Help 



      我不是一个喜欢电子书的人,但是拿VC++ 这个Help 系统做快速查阅工作实在是不 



      错。图4…6 是其使用画面与解说。 



        图4…6a VC++的Online Help 提供各种技术资料。按下 【Help/Content】, 



              就出现图左的数据清单,这也就是从Visual C++ 4。0 开始新增的所 



              谓InfoView 窗口。Online Help 内容非常丰富。 



                                                                         247 


…………………………………………………………Page 310……………………………………………………………

               第篇    欲善工事先利其器 



               让我们试试检索功能。选择【Help/Search】,出现对话框,键入CreateThread,出现数篇与此关 



               键字有关的文章。选择某一篇文章,文章内容将出现在另一个窗口中。 



                               图4…6b 检索功能 



248 


…………………………………………………………Page 311……………………………………………………………

                                      第4章    Visual C++  整合性軟體開發環境 



   图4…6c 检索功能 【Search】对话框的另一个附页。允许你做更多搜寻设定。 



除错工具 



   每一位C 程序员在DOS 环境下都有使用「夹杀法」的除错经验:把可能错误的范围不 



   断缩小,再缩小,最后以printf  印出你心中的嫌疑犯,真象大白。 



   Windows 程序员就没有方便的printf  可用,唯MessageBox 差可比拟。我曾经在 



   Windows  内存管理系统篇( 旗标/1993  )第0章介绍过一种以MessageBox 和 



   NotePad。exe 合作仿真printf  的方法,使用上堪称便利。 



   MessageBox 会影响你的程序进行,自制printf  又多费手脚。现在有了第三方案。你可 



   以在程序的任何地方放置TRACE 宏,例如: 



   TRACE(〃Hello World〃); 



                                                                      249 


…………………………………………………………Page 312……………………………………………………………

               第篇    欲善工事先利其器 



               参数字符串将被输出到除错窗口去,不会影响你的程序进行。注意,TRACE 宏只对程序 



               的除错版才有效,而且程序必须在Visual C++  的除错器中执行。 



               为了让TRACE 生效,你还必须先在另一个程序中做另一个动作。请选按【Tools / MFC 



               Tracer 】,得到这样的画面: 



                 我们必须将【Enable Tracing】项目设立起来,然后除错窗口才能显示TRACE 字符串。 



              旧版的Visual C++  中(v2。0 和v1。5 ),TRACE 宏将字符串输出到一个名为DBWin  的 



             程序中。虽然应用程序必须以“Win32 debug”     编译完成,但却不需要进入除错器就可以 



             获得TRACE 输出。从Visual C++ 4。0 开始到Visual C++ 5。0 ,不再附有DBWin  程序, 



             你无论如何需要大家伙(除错器)。如果你很怀念过去的好时光,请参考Microsoft Systems 



             Journal 上的三篇文章:1995/10 的C++ Q/A ,1996/01 的C++ Q/A ,以及1997/04  的C/C++ 



             Q/A 。这三篇文章都由Paul Dilascia 执笔,教读者如何自己动手做一个可接收TRACE 巨 



             集输出的DBWIN 程序。 



             我将在本书附录D中对Paul Dilascia  的创意提供一些说明。 



             TRACE 很好用,美中不足的是它和MessageBox 一样,只能输出字符串。这里有一个变通 



             办法,把字符串和数值都送到afxDump 变量去: 



                afxDump 
返回目录 上一页 下一页 回到顶部 0 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!