关于Visual C++ 6.0的调试技巧和经验总结

关于Visual C++ 6.0的调试技巧和经验总结 用VC来写程序,有时总是出这样那样的问题,没办法只能自己上网查资料来解决,在这里把自己常见的问题和一些技巧贴出来分享给大家,希望对大家有用,也省去大家再去搜索的烦恼……

1.如何在Release状态下进行调试

Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database.在Link标签中选中Generate debug info复选框。

注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下QuickWatch、调用队列跟踪功能仍然有效,和Debug版一样。

2. Release和Debug有什么不同

Release版称为发行版,Debug版称为调试版。

Debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。

Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll)。这些DLL在安装Windows的时候,已经配置,所以这些程序能够在没有安装Visual C++ 6.0的机器上运行。而Debug版本的exe链接了调试版本的MFC DLL文件,在没有安装Visual C++6.0的机器上不能运行,因为缺相应的DLL,除非选择use static dll when link.

3. ASSERT和VERIFY有什么区别

ASSERT里面的内容在Release版本中不编译,VERIFY里面的内容仍然翻译,但不再判断真假。所以后者更安全一点。例如ASSERT(file.Open(strFileName))。一旦到

了Release版本中,这一行就忽略了,file根本就不Open()了,而且没有任何出错的信息。如果用VERIFY()就不会有这个问题。

4.Workspace和Project之间是什么样的关系

每个Workspace可以包括几个project,但只有一个处于Active状态,各个project之间可以有依赖关系,在project的Setting……中可以设定,比如那个Active状态的project可以依赖于其他的提供其函数调用的静态库。

5. 如何在非MFC程序中使用ClassWizard

在工程目录下新建一个空的。RC文件,然后加入到工程中就可以了。

6.如何设置断点

按F9在当前光标处增加一个断点和取消一个断点。另外,在编辑状态下,按Ctrl+B组合键,弹出断点设置对话框。然后单击「Condition…」按钮弹出设置断点条件的对话框进行设置。

7.在编辑状态下发现成员变量或函数不能显示提示是如何打开显示功能

这似乎是目前这个Visual C++ 6.0版本的一个bug,可按如下步骤使其正常,如再出现,可如法炮制:

(1)关闭Project

(2)删除“工程名。ncb”文件

(3)重新打开工程

8.如何将一个通过ClassWizard生成的类彻底删除

首先在工作区的FileView中选中该类的。h和。cpp文件,按delete删除,然后在文件管理器中将这两个文件删除,再运行ClassWizard,这时出现是否移走该类的提示,选择remove就可以了。

9. 如何将在workspace中消失的类找出来

打开该类对应的头文件,然后将其类名随便改一下,这个时候工作区就会出现新的类,再将这个类改回原来的名字就可以了。

10. 如何清除所有的断点

菜单「Edit」->「Breakpoints…」,打开“Breakpoints”对话框,单击「Remove All」按钮即可。快捷键是“Ctrl + Shift + F8”。

11. 如何再ClassWizard中选择未列出的信息

打开“ClassWizard”对话框,然后切换到“Class Info”页面。改变“Message filter”,如选择“Window”,“Message”页面就会出现Window的信息。

12. 如何检测程序中的括号是否匹配

把光标移动到需要检测的括号前面,按快捷键“Ctrl + ]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告。

13. 如何查看一个宏(或变量、函数)的定义

把光标移动到要查看的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的相关菜单),如果没有建立浏览文件,就会出现提示对话框,按「确定」按钮,然后就会跳到该宏(或变量、函数)定义的地方。

14. 如何添加Lib文件到当前工程

单击菜单「Project」->「Settings…」弹出“Project Setting”对话框,切换到“Link”标签页,在“Object/library modules”处输入Lib文件名称,不同的Lib之间用空格格开。

15. 如何快速删除项目下的Debug文件夹中临时文件

在工作区的FileView视图中选中对应的项目,单击右键弹出菜单,选择「Clean(selection only)」菜单即可。

16. 如何快速生成一个现有工程除了工程名外完全相同的新工程

在新建工程的“New”对话框中选择“Custom Appwizard”项,输入新工程的名字,单击「OK」按钮。出现“Custom AppWizard”项,输入新工程的名字,单击「OK」按钮。出现“Custom AppWizard-Step 1 of 2”对话框,选择“An existing Project”项,单击「Next」按钮。出现“Custom AppWizard-Step 2 of 2”对话框,选择现有工程的工程文件名,最后单击「Finish」按钮。编译后就生成一个与现有工程相同但可以重新取名的工程

AppWizard.现在就可以项用MFC AppWizard一样用这个定制的向导。如果不想用了,可以在Visual C++ 6.0安装目录下Common\MSDev98\Template目录中删除该Wizard对应的。awx和。pdb文件。

17. 如何解决Visual C++ 6.0不正确连接的问题

情景:明明改动了一个文件,却要把整个项目全部重新编译链接一次。刚刚链接好,一运行,又提示重新编译链接一次。这是因为出现了未来文件(修改时间和创建时间比系统时间晚)的缘故。可以这样处理:找到工程文件夹下的debug目录,将创建和修改时间都比系统时间的文件全部删除,然后再从新“Rebuild All”一次。

18. 引起LNK2001的常见错误都有哪些

遇到的LNK2001错误主要为:unresolved external symbol “symbol”,如果链接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误信息。

一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在,拼写不正确或者使用错误;其次可能使用了不同版本的链接库。以下是可能产生LNK2001错误的原因:

<1>由于编码错误导致的LNK2001错误

(1)不相匹配的程序代码或模块定义(。DEF)文件导致LNK2001.例如,如果在C++源文件了内声明了一变量“var1”,却试图在另一个文件内以变量“var1”访问改变量。

(2)如果使用的内联函数是在。cpp文件内定义的,而不是在头文件内定义将导致LNK2001错误。

(3)调用函数时如果所用的参数类型和头函数声明时的类型不符将会产生LNK2001错误。

(4)试图从基类的构造函数或析构函数中调用虚拟函数时将会导致LNK2001错误。

(5)要注意函数和变量的可公用性,只有全局变量、函数是可公用的。静态函数和静态变量具有相同的使用范围限制。当试图从文件外部方位任何没有在该文件内声明的静态变量时将导致编译错误或LNK2001错误。

<2>由于编译和联机的设置而造成的LNK2001错误

(1)如果编译时使用的是/NOD(/NODERAULTLIB)选项,程序所需要的运行库和MFC时将得到又编译器写入目标文件模块,但除非在文件中明确包含这些库名,否则这些库不会被链接进工程文件。这种情况下使用/NOD将导致LNK2001错误

(2)如果没有为wWinMainCRTStartup设定程序入口,在使用Unicode和MFC时将出现“unresolved external on _WinMain@16”的LNK2001错误信息。

(3)使用/MD选项编译时,既然所有的运行库都被保留在动态链接库之内,源文件中对“func”的引用,在目标文件里即对“__imp__func”的引用。如果试图使用静态库LIBC.LIB或LIBCMT.LIB进行链接,将在__imp__func上发生LNK2001错误。如果不使用/MD选项编译,在使用MSVCxx.LIB链接时也会发生LNK2001错误。

(4)使用/ML选项编译时,如用LIBCMT.LIB链接会在_errno上发生LNK2001错误。

(5)当编译调试版的应用程序时,如果采用发行版模态库进行链接也会产生LNK2001错误;同样,使用调试版模态库链接发行版应用程序时也会产生相同的错误。

(6)不同版本的库和编译器的混合使用也能产生问题,因为新版的库里可能包含早先的版本没有的符号和说明。

(7)在不同的模块中使用内联和非内联的编译选项能够导致LNK2001错误。如果创建C++库时打开了函数内联(/Ob1或/Ob2),但是在描述该函数的相应头文件里却关闭了函

数内联(没有inline关键字),只是将得到错误信息。为避免该问题的发生,应该在相应的头文件中用inline关键字标志为内联函数。

(8)不正确的/SUBSYSTEM或ENTRY设置也能导致LNK2001错误。

19. 如何调试一个没有源码的exe文件调用的dll

在Visual C++ 6.0中,进入“Project Setting”对话框然后选择Debug标签页。通常Visual Studio默认“executable for debug session”为可执行文件名,但可以将他改成任何你想要的程序。甚至可以指定不同的工作目录以及传递参数到你的程序。这个技术常用来调试Dlls、名字空间扩展、COM对象和其他从某些EXE以及从第三方的EXE中调用的plug-in程序。

20. Visual C++ 6.0工程中的项目文件都表示什么

·opt:工程关于开发环境的参数文件。如工具条位置等信息。

·aps(AppStudio File)资源辅助文件,二进制格式,一般不用去管它。

·clw:ClassWizard信息文件,实际上是INI文件格式,有兴趣可以研究一下。有时候ClassWizard出了问题,手工修改CLW文件可以解决。如果此文件不存在的话,每次用ClassWizard的时候回提示是否重建。

·dsp(DevelopStudio Project):项目文件,文本格式,不过不熟悉的不要手工修改。 ·dsw(DevelopStudio Workspace):是工作区文件,其他特点和。dsp差不多。

·plg:是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大。在单击菜单「Tool」->「Option」弹出的对话框里面有个选项可以控制这个文件的生成。

·hpj(Help Project):是生成帮助文件的工程,用microsoft Help Compiler可以处理。 ·mdp(Microsoft DevStudio Project):是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的。dsp格式。

·bsc:是用于浏览项目信息的,如果用Source Brower的话就必须有这个文件。如果不用这个功能的话,可以在Project Options里面去掉Generate Browse Info File,这样可以加快编译速度。

·map是执行文件的映象信息记录文件,除非对系统底层,这个文件一般用不着。 ·pch(Pre-Compiled File):是与编译文件,可以加快编译速度,但是文件非常大。 ·pdb(Program Database):记录了程序有关的一些数据和调试信息,在调试的时候可能有用。

·exp:只有在编译DLL的时候才会生成,记录了DLL文件的一些信息,一般也没有用。 ·ncb:无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成

 

第二篇:导游口试经验总结1

导游资格考试口试经验总结

陈露

一、 着装:着装是一个很重要的问题,并不是说一定要非常精心的

打扮,然后给考官一个很好的印象,其实着装最重要的是给自己一个很好的心情,如果你的衣服看起来很漂亮很帅气,但是如果你穿得很不习惯很不舒服的话,那也会影响到你的心情和你的发挥。所以着装的原则是:干净清爽、大方得体、舒适。女孩子头发长的话一定要扎起来,可以化点淡妆,男孩子收拾得干净利落即可,不要戴任何首饰(耳环、戒指、手链、项链等)。

二、 仪态:在导游口试的评分表上,我们可以看到语言仪态这一栏

占了20%的分数,比回答导游规范和应变能力题的分数都要重很多。由此可见,仪态是非常重要的,所以在讲解过程中,考生一定要保持良好的精气神,展现出亲切自然,乐观自信的一面。考生的站姿要注意了,保持礼仪中规范的站姿,忌双手抱在胸前或者撑在桌子上,也不要低头或耸肩。

三、 礼貌:考生在考试当中,尤其在面试中应该保持谦虚谨慎的态

度,而礼貌是展现这个态度最好的工具,同时礼貌也会影响到考官的心情,增加考官对你的好印象。礼貌当然不仅仅就是几个动作和几句话,需要从内心深处去尊重他人,尊重考官,有些细节我们必须去做,让别人感受到我们的诚意。首先考生在进门时,应敲门,得到允许进门的指示后,鞠个躬,走到考官面前时再鞠个躬,表示问好。考官每次提问完毕,考生应先说:“谢谢考官的提问。”然后再回答考官的问题,这一细节很重要,不仅能让考官知道你是否听懂了问题的题目,也能让考官感受到你的自信。在每次回答问题完毕后,应该加上:“我的回答完毕。”离开考场之前,再向考官鞠个躬表示感谢。不要觉得这些很容易做到,就不加练习,根据多次模拟的效果来看,很多同学一上场就会把这些简单的东西忘得一干二净,建议在考试之前,认真地练习几遍。

四、 语音语速:因为考场很安静,考生不需要很大声地讲解导游

词和回答问题,但必须保证你的声音能够让考场的每个人都听到。讲话时一定要吐字清晰、普通话准确、阴阳顿挫、富有感情,不要结结巴巴、含糊不清的。很多考生觉得自己背的很熟

了,所以觉得讲得越快越好,其实你讲得过快,很有可能考官根本不知道你讲的是什么,反而会影响你的成绩,还有就是很多考生因为前面讲得太快,很容易导致后面忘词,让考官觉得你还不是很熟练。所以在讲解的时候,语速要适中,不能过快或过慢。

五、 中断:考生在考试的时候,都会被考官打断,很多考生抗干扰

能力差,从几次模拟情况来看,很多同学一被打断就会很紧张,大脑一片空白,后面的知识就回答不上来了。不要过于紧张,被考官打断不是因为你讲得不好,很可能是觉得还挺满意的,准备进行下一环节,所以首先把心里的包袱放下,把这个看成平常的事情,坦然去面对。如果觉得还是难以克服的话,可以多模拟练习几次。

六、 副语言:在考试当中,副语言包括你的肢体语言和表情,很多

同学根本没有意识到副语言的力量。如果能好好运用副语言,一定能达到事半功倍的效果。在讲解过程中,为了更好地表达你的感情,可以加上一些恰当地手势,比方说到“请游客们看一下,前面就是我们要到达的旅游景点了。”的时候,可以抬起手示意一下,让考官感觉和你一起融入到旅游的情景中去了。手势也不要用的太夸张或过于频繁,会分散考官的注意力,并会给人一种不稳重的感觉。最重要的是表情的运用,在讲解时,一定要面带微笑(除了讲解情境的需要),不要一直板着脸,或作痛苦紧张状。眼神,一定要和考官有所交流,很多同学喜欢在讲解导游词时翻白眼或者盯着天花板、地板、鞋子等。也不要总是偏着头在那里一边讲解,一边苦思冥想,你是作为一个导游在讲解导游词,一定要有深情并茂的,而不是在那里枯燥乏味地死背课文。

七、 忘词:绝大多数同学在考试过程中,都会遭遇到这样的情况。

发生这种情况的原因有两个,一是还不够熟练;二是心理素质还不够好,过于紧张。为了克服这种情况的发生,除了努力把知识掌握牢固之外,还要反复加强练习。如果万一在考场中,出现暂时忘词的情况,不要过于紧张,那就跳过不会的地方,切记停顿过久,造成尴尬的情况。实在想不起来,也没有办法解决的话,可以请求考官提示一下,但我不是很赞成这种做法,因为如果有可能考官也不清楚你讲到什么都地方来了,一天面试的人太多,可能会分神,你一问反而让他觉得有点难堪,如果他有心想提醒你的话,你稍稍停顿的时候,他会自主地提醒你。一定要冷静地处理所有的突发情况。

八、 口头禅:很多考生在讲解导游词时,都会不由自主地反复用

一些相同的词,比如然后呢、接下来、那个、嗯等。这可能是平时在讲话时养成的不好习惯,喜欢在讲话的时候加上口头禅,虽然自己可能完全意识不到,但是别人听起来就会觉得不舒服,尽量去掉你的口头禅,实在克制不住,那就减少使用的频率。

九、 感情的运用:在前面虽然已经提到过在讲解时要注意感情的

运用,但这里还是想强调一下。因为很多考生只是把讲解导游词当做背课文,和背课文不同的是,讲解一定要投入感情,生动形象地给游客描述美丽的景色,而不是机械的、枯燥乏味地死背导游词。所以在讲解导游词时,要把自己当做一个真正的导游在景点给你的游客做讲解。

十、 快速记忆技巧:导游词考查的范围包括五篇省导游词和三篇

市景点。有些导游词的内容很难记忆,单凭死记硬背,可能还会出现记得慢,忘得快的现象。在理解的基础上,运用分段分散记忆法去记忆,效果会更好。导游服务规范知识题和特殊问题应变技巧题一共120道,考官可能会问到4~8道左右。虽然这些题目看起来内容很多,需要全部准确无误地记下来好像是不太可能,但是其实这些题目都是导游业务中的常识题,但凡认真看过一遍的,多少会有印象,在记忆的时候,先只看题目,把自己设想成一名真正的导游遇到这种情形该如何处理,然后再对照题目的答案,看自己有什么地方需要注意的,这样记忆印象更加深刻。另外,这些题目并不需要完完整整一次不漏地背下来,只要记住每句话的要点,每件事情处理的步骤,然后进行展开就可以了,所以只要你把这些题目进行归纳总结,用简单的词总结出要点和步骤,需要记忆的内容会减少很多,而且会记得更加牢固。在回答这些题目的时候,如果出现你记不清楚地情况,一定要保持冷静,尽可能多的想出与题目相关的知识点,即使没有答对很多,但总会有一两点是与答案挨上边的,考官会酌情给分,千万不要说“不知道”或“不记得了”之类的话。

十一、 反复练习,不要存侥幸心理:前面讲了很多细节需要注意

的地方,但其实最重要的还是要掌握好考试的具体内容,并反复练习,可能私底下你觉得自己背的可以了,但是一站到台上,

你就会紧张起来,很多同学一致认为,在讲台下和讲台上讲解的感觉是完全不一样,所以为了确保自己考试顺利,一定要勇于给自己机会,站到讲台上来练习,或者找几个同学或老师做你的考官。一定不能为了偷懒,而存有侥幸心理,那些没有通过口试的同学,一定是准备的还不够充分。为了确保万一,任何知识点都要牢牢把握!最后,祝你考试成功!