visual c++6.0怎么调试,visual c++ 6.0操作步骤
用VC写程序的时候,总会遇到一些问题。除了上网查资料,没有办法解决。在这里,我把自己的常见问题和一些技巧贴出来与大家分享,希望对你有用,省去你再次寻找的麻烦.
1.如何在发布状态下调试
Project- Setting=ProjectSetting对话框,选择发布状态。在C/C选项卡中为类别选择常规,为优化选择禁用(调试),为调试信息选择编程数据库。在“链接”选项卡中选择“生成调试信息”复选框。
注意:这只是调试和发布之间的中间状态。所有断言和验证都不起作用。函数调用方法不用查表就已经是真正的调用了。但是,在这种状态下,QuickWatch和呼叫队列跟踪功能仍然有效,就像调试版本一样。
2.发布和调试有什么区别?
发布版叫发布版,调试版叫调试版。
Debug可以执行单步执行、跟踪等功能,但是生成的可执行文件比较大,代码运行比较慢。发布版本运行速度更快,可执行文件更小,但不能在其编译条件下执行调试。
Release exe文件链接到标准MFC dll(在共享或静态dll中使用MFC)。这些dll是在安装Windows时配置的,因此这些程序可以在没有安装Visual C 6.0的计算机上运行。exe的调试版本是链接到MFC DLL文件的调试版本的,所以在没有Visual C 6.0的机器上是无法运行的,因为对应的DLL是缺失的,除非你选择链接时使用静态DLL。
3.断言和验证有什么区别?
ASSERT中的内容在Release版本中不编译,VERIFY中的内容仍然翻译,但不再是true或false。所以后者更安全。例如断言(文件。Open(strFileName))。一旦到了发布版本,这一行就被忽略了,文件根本没有打开(),也没有错误消息。如果使用VERIFY(),就不会有这个问题。
4.4有什么关系。工作空间和项目?
每个工作区可以包含多个项目,但只能有一个是活动的,它们之间可以有依赖关系,这可以在项目的设置……中设置。例如,活动项目可以依赖于提供其函数调用的其他静态库。
5.如何在非MFC程序中使用ClassWizard
在项目目录中创建一个空的。RC文件,然后将其添加到项目中。
6.如何设置断点?
按F9添加断点并取消当前光标处的断点。另外,在编辑状态下,按Ctrl B弹出断点设置对话框。然后点击“条件…”按钮,弹出断点条件设置对话框。
7.如果发现成员变量或函数在编辑状态下无法显示,提示如何打开显示功能。
这似乎是当前版本Visual C 6.0的一个bug。您可以通过以下步骤使其正常化。如果它再次出现,您可以执行相同的操作:
(1)关闭项目
(2)删除“项目名称”。Ncb”文件
(3)重新打开项目。
8.如何完全删除一个由ClassWizard生成的类?
首先,在工作区中选择该类的FileView。h和。Cpp文件,按delete删除,然后在文件管理器中删除这两个文件,然后运行ClassWizard。此时,系统会提示您是否要删除该类。只需选择删除。
9.如何找出workspace中消失的类?
打开这个类对应的头文件,然后随便改一下它的类名。这时工作区会出现一个新的类,然后把这个类改回原来的名字。
10.如何清除所有断点?
菜单「编辑」-「断点…」,打开「断点」对话框,点击「全部删除」按钮。快捷键是“Ctrl+Shift+F8”。
1.如何选择ClassWizard中未列出的信息?
打开“类向导”对话框,然后切换到“类信息”页。更改“消息过滤器”,如选择“窗口”,窗口的信息会出现在“消息”页面。
12.如何检查程序中的括号是否匹配?
将光标移动到要检测的括号前面,按快捷键“Ctrl]”。如果括号匹配正确,光标将跳转到匹配的括号,否则,光标不会移动,机箱喇叭将发出警告。
13.如何查看宏(或变量、函数)的定义
将光标移动到要查看的宏,例如,在最常见的DECLARE_MAP_MESSAGE上单击F12(或右键菜单中的相关菜单)。如果没有创建浏览文件,将出现一个提示对话框。按下“确定”按钮,然后你将跳转到定义宏(或变量或函数)的地方。
14.如何在当前项目中添加Lib文件?
点击菜单“项目”-“设置.”,弹出“项目设置”对话框,切换到“链接”选项卡,在“对象/库模块”中输入Lib文件的名称,不同的Lib之间用空格隔开。
15.如何快速删除项目下调试文件夹中的临时文件?
在工作区的FileView视图中选择相应的项目,右键弹出菜单,选择“Clean(selection only)”菜单。
16.如何快速生成一个除项目名称外与现有项目相同的新项目?
在新项目的“新建”对话框中选择“自定义Appwizard”项,输入新项目的名称,点击“确定”按钮。出现“自定义应用程序向导”项,输入新项目的名称,然后单击“确定”按钮。在“自定义应用程序向导-第1步,共2步”对话框中,选择“现有项目”项,然后单击“下一步”按钮。出现“自定义应用程序向导-第2步,共2步”对话框,选择现有项目的项目文件名,最后单击“完成”按钮。编译后,将生成一个与现有项目相同但可以重命名的项目AppWizard。现在,您可以像使用MFC AppWizard一样使用这个自定义向导了。如果不想再用了,可以删除Visual C 6.0安装目录下的Common\MSDev98\Template目录下对应的向导。哇哦。Pdb文件。
17.如何解决Visual C 6.0连接不正确的问题
情况:你明明改了一个文件,却要重新编译链接一次整个项目。链接刚刚好。一旦它运行,你将被提示重新编译链接。这是因为未来文件的出现(修改时间和创建时间晚于系统时间)。可以这样做:在项目文件夹中找到调试目录,删除所有创建和修改时间比系统时间长的文件,然后再次“全部重建”。
18.导致LNK2001的常见错误有哪些?
遇到的LNK2001错误主要是:未解析的外部符号“symbol”。如果链接器在所有库和目标文件中找不到引用的函数、变量或标签,将生成此错误信息。
一般来说,错误的原因有两个:一是引用的函数和变量不存在,拼写错误或使用错误;其次,可以使用不同版本的链接库。以下是LNK2001错误的可能原因:
1由于编码错误导致的LNK2001错误
(1)不匹配的程序代码或模块定义(。DEF)文件导致LNK2001。例如,如果在C的源文件中声明了变量“var1 ”,但试图访问另一个文件中的变量“var1”。
(2)如果使用的内联函数在。在cpp文件而不是头文件中定义将导致LNK2001错误。
(3)调用函数时,如果使用的参数类型与head函数声明的类型不匹配,会产生LNK2001错误。
(4)试图从基类的构造函数或析构函数调用虚函数将导致LNK2001错误。
(5)注意函数和变量的共性。只有全局变量和函数可以共享。静态函数和静态变量在使用范围上有相同的限制。试图从文件外部定位任何未在文件中声明的静态变量将导致编译错误或LNK2001错误。
2编译和在线设置导致的LNK2001错误
(1)如果编译时使用//NOD(/NODERAULTLIB)选项,程序所需的运行时和MFC将被编译器写入目标文件模块,但除非文件中明确包含这些库名,否则这些库不会链接到项目文件中。在这种情况下使用/NOD将导致LNK2001错误。
(2)如果没有为wWinMainCRTStartup设置程序条目,则在使用Unicode和MFC时会出现LNK2001错误消息“Unresolved external on _ winmain @ 16”。
(3)用/MD选项编译时,由于所有运行时库都保存在动态链接库中,所以源文件中对“func”的引用就是目标文件中对“__imp__func”的引用。如果您尝试使用静态库LIBC进行链接。LIB或LIBCMT。LIB,LNK2001错误将出现在__imp__func上。如果不使用/MD选项进行编译,则在使用MSVCxx时也会出现LNK2001错误。LIB链接。
(4)用/ML选项编译时,如果用LIBCMT链接。LIB,在_errno上将出现LNK2001错误。
(5)编译被调试的应用程序时,如果使用release模态库进行链接,也会出现LNK2001错误;类似地,当使用调试模式库链接分发应用程序时,也会出现同样的错误。
(6)混合使用不同版本的库和编译器也会导致问题,因为新版本的库可能包含早期版本没有的符号和描述。
(7)在不同的模块中使用内联和非内联编译选项会导致LNK2001错误。如果在创建C库时打开了函数内联(/Ob1或/Ob2),但在描述该函数的相应头文件中关闭了函数内联(没有inline关键字),则只会得到一条错误消息。为了避免这个问题,内联函数应该在相应的头文件中用inline关键字标记。
(8)不正确的/子系统或入口设置也会导致LNK2001错误。
19.如何在没有源代码的情况下调试exe文件调用的dll
在Visual C 6.0中,进入“项目设置”对话框,选择“调试”选项卡。通常Visual Studio将“调试会话的可执行文件”默认为可执行文件的名称,但是您可以根据需要将其更改为任何程序。您甚至可以指定不同的工作目录,并向您的程序传递参数。这项技术通常用于调试dll、命名空间扩展、COM对象和从一些exe和第三方exe调用的其他插件程序。
20.Visual C 6.0项目中的项目文件代表什么?
opt:项目关于开发环境的参数文件。例如工具栏位置。
aps(AppStudio File)资源辅助文件,二进制格式,一般不用担心。
clw:ClassWizard信息文件,它实际上是一种INI文件格式。有兴趣可以研究一下。有时ClassWizard会有问题,可以通过手动修改CLW文件来解决。如果该文件不存在,每次使用ClassWizard时都会提示您重新构建它。
dsp(DevelopStudio Project):项目文件,文本格式,但不熟悉的不要手动修改。
dsw(DevelopStudio Workspace):它是一个带有其他特性和。Dsp也差不多。
plg:是编译信息文件,编译时的错误和警告信息文件(其实是html文件),一般用处不大。点击菜单「工具」-「选项」弹出的对话框中,有一个选项控制该文件的生成。
hpj(帮助项目):是一个生成帮助文件的项目,可以通过微软帮助编译器来处理。
mdp(Microsoft DevStudio项目):它是项目文件的旧版本。如果要打开该文件,系统会提示您是否将其转换为新文件。Dsp格式。
bsc:用于浏览项目信息。如果您使用源代码浏览器,您必须有这个文件。如果不使用这个函数,可以在项目选项中删除生成浏览信息文件,这样会加快编译速度。
map是执行文件的图像信息记录文件,一般不需要,除非在系统底层。
PCH(预编译文件):用于编译文件,可以加快编译速度,但是文件非常大。
pdb(程序数据库):记录一些与程序相关的数据和调试信息,可能在调试中有用。
exp:它只会在编译DLL时生成。它记录了DLL文件的一些信息,一般没用。
ncb:没有编译浏览器。当自动完成功能出现问题时,您可以删除此文件。它将在项目编译后自动生成。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。