Visual C++6.0中的调试工具使用及常见错误

合集下载

VisualC++6.0使用教程

VisualC++6.0使用教程

VisualC++6.0使⽤教程Visual C++它⼤概可以分成三个主要的部分:3. Platform SDK。

这才是Visual C++和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。

⼤致说来,Platform SDK是以Microsoft C/C++编译器为核⼼(不是Visual C++,看清楚了),配合MASM,辅以其他⼀些⼯具和⽂档资料。

上⾯说到Developer Studio没有编译程序的功能,那么这项⼯作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令⾏程序,这些我们看不到的程序才是构成Visual Studio的基⽯。

2. MFC。

从理论上来讲,MFC也不是专⽤于Visual C++,Borland C++,C++Builder和Symantec C++同样可以处理MFC。

同时,⽤Visual C++编写代码也并不意味着⼀定要⽤MFC,只要愿意,⽤Visual C++来编写SDK程序,或者使⽤STL,ATL,⼀样没有限制。

不过,Visual C++本来就是为MFC打造的,Visual C++中的许多特征和语⾔扩展也是为MFC⽽设计的,所以⽤Visual C++⽽不⽤MFC就等于抛弃了Visual C++中很⼤的⼀部分功能。

但是,Visual C++也不等于MFC。

1. Developer Studio,这是⼀个集成开发环境,我们⽇常⼯作的99%都是在它上⾯完成的,再加上它的标题赫然写着“Microsoft VisualC++”,所以很多⼈理所当然的认为,那就是Visual C++了。

其实不然,虽然Developer Studio提供了⼀个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些⼯作的幕后英雄后⾯会介绍。

我们也知道,Developer Studio并不是专门⽤于VC的,它也同样⽤于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。

VisualC++6.0踩坑记录---在Win10下安装VisualC++6.0安装成功后。。。

VisualC++6.0踩坑记录---在Win10下安装VisualC++6.0安装成功后。。。

VisualC++6.0踩坑记录---在Win10下安装VisualC++6.0安装成功后。

前⾔: 为了更好的学习C及C++,前段时间下载了Microsoft Visual C++ 6.0(以下简称VC6),原因是VC6具有查看反汇编代码、监视内存、寄存器等功能,并且因为本⼈正在学习滴⽔逆向海哥的课程,他⽤的就是VC6,我也懒得折腾,就⽤了和他⼀样的编译器。

其实他教给我的最让我受益的,就是他对于编程语⾔的理解⾓度:从编译器的⾓度去理解C及C++语⾔,从编译器的⾓度理解指令在底层是如何被编译器处理的。

借⽤海哥的话:只有从编译器的⾓度去理解C及C++,才能领悟到这门语⾔的真谛,才能在这条路上没有瓶颈没有上限。

(跑题了。

) 在多个软件论坛及⽹站上下载了不同版本的VC6,发现了⼀个共性问题:在点击“打开”按钮时,VC6会卡顿⼀下然后闪退,去⽹上查找了原因。

发现VC6作为微软1998年推出的⼀款C++编译器(⽼古董级别),存在诸多兼容性问题,例如在Windows XP(调试模式会出现静态变量的值不显⽰,需要靠打补丁解决),Windows7(兼容性问题,同Windows10),Windows8(需要通过修改原MSDEV.exe⽂件名,并改兼容性才能解决)。

⽽有⼈提出VC6在Win7和Win10上都存在的不兼容现象,通过改变兼容模式即可解决。

于是我按照⽹上提供的操作⽅法,右键单击VC6的快捷⽅式,点击属性,在“兼容性”⼀栏中设置兼容模式勾选“以兼容模式运⾏这个程序”,然后在下拉菜单栏中选择如图“Windows XP(Service Pack 3)”,点击确定即可设置完成。

可是设置之后进⼊VC6仍然闪退,于是我⼜尝试了“兼容模式”下拉栏中所有的模式,发现全部都没能解决这个问题,于是我放弃了这个⽅法。

既然更改兼容模式没办法解决这个问题,只好另辟蹊径,刚好此时在CSDN上看到了⼀个解决办法,这⾥挂上⽹址:⼤家可以⾃⾏下载此链接⾥提供的.dll⽂件(已编译版本)(百度⽹盘下载)操作步骤:1.把下载好的FileTool.dll⽂件放⼊D:\Microsoft Visual Studio\Common\MSDev98\AddIns下(这⾥是我的VC6的安装路径,⼤家根据⾃⼰的安装路径拷贝⽂件即可)2.⽤管理员⾝份打开DOS,⼿动注册FileTool.dll3.打开VC6--⼯具--定制--附加项和宏⽂件,勾选FileTool Developer Studio Add-in,点击关闭即可。

VC6.0常见错误信息分析

VC6.0常见错误信息分析

1.程序开发过程中出现的错误类型我们在进行程序设计时,不可避免地会犯错误。

程序中的错误可以分为三类:编译错误、运行时错误和逻辑错误。

1.1编译错误编译错误(Compile errors)又称为编译时错误(Compiling-time errors): 是由于错误的编码产生的。

例如关键字拼写错误、将中文标点符号当成英文符号使用、遗漏了某些必要的标点符号或者使用了一个没有定义的标识符。

编译错误一般都是语法错误,当编译器对程序进行语法检查时,都能发现这些错误,并能够指出产生错误的位置(标出行号)。

我们可以根据编译出错信息指出的行号找到对应的源代码行改正错误,重新编译源程序。

只有当所有的编译错误被改正后,才能通过编译检查,产生目标代码文件。

改正编译错误的关键是要能正确理解编译器给出的编译错误信息。

VC++环境中的编译、链接错误信息是用英文表示的。

对于英文基础薄弱的读者,可以参考本实验指导书后面的“VC++编译、链接常见错误和警告信息中英文对照”。

通常情况下,一个语法错误可能产生多条编译错误信息,这是由于株连错误造成的,建议读者在处理编译错误时,找到第一个出现错误的位置改正后重新编译。

这样能够避免被株连错误迷惑。

值得指出的是,现在大部分编译器对错误的定位不精确,如果在编译器指出的行没有发现错误,应该向前查找错误。

例如,当提示第10行发生错误时,如果在第10行没有发现错误,请从第10行开始往前查找错误并修改之。

1.2运行时错误运行时错误(Run-time errors)是在程序的运行阶段出现的,当运行环境检测到程序的某些操作无法执行,例如除数为零时,就会出现运行时错误。

当运行环境检测到程序的某些操作是被禁止的,也会产生运行时错误。

例如,访问数组时超越数组的边界,空指针引用(NULL pointer assignment,空指针赋值,即有指针未赋具体地址就使用了)等等。

1.3逻辑错误逻辑错误(Logic errors):当程序没有按照程序员的意图执行时,就表明程序中存在逻辑错误。

使用VC6.0调试程序

使用VC6.0调试程序

结构体类型的定义
struct 结构体类型名 { 类型标识符 成员名1;
类型标识符 成员名2; ……
类型标识符 成员名n; };
如: struct student { char name[10];
long id; char gender; int age; }
注意: struct student 应作为一个类型整体, name[10]、id、gender、age都是其成员。 struct及花括号后的“;”不能省。
a
因此,在C语言中,将地 址形象化地称为指针
2012 35
b
….
2010 p
2012 q
定义一个指针变量
指针变量的定义一般形式为:
基类型 *指针变量名;
例如: int i, j, *pi, *pj; float x, y, *p1, *p2;
指针变量的赋值:使得指针变量指向变量 指针变量名=&变量名;
设有一个函数process,在调用它时,每次实现不同的功 能。输入a和b两个数,第一次调用时找出a与b中的大者,第
二次找出小者,第三次求和。
#include<stdio.h> void main() {int max(int,int); int min(int,int); int add(int,int); int process(int, int, int (*fun)()); int a,b; printf("enter a and b:"); scanf("%d%d",&a,&b); printf("\nmax="); process(a,b,max); printf("\nmin="); process(a,b,min); printf("\nsum="); process(a,b,add); }

vc++6.0菜单中英文对照附录常见编译错误

vc++6.0菜单中英文对照附录常见编译错误

VC++6.0系统开发环境在Windows 98/2000/XP操作系统中正确安装了Visual C++ 6.0后,可以启动Visual C++6.0系统。

第一次运行时,将显示出“Tip of the Day”对话框,单击“Next”命令按钮,可看到有关各种操作的提示;如果不选中“Show tips at startup”复选框,那么以后运行Visual C++ 6.0时将不再出现此对话框。

单击“Close”命令按钮关闭此对话框,进入Visual C++6.0系统开发环境。

1 开发环境的菜单功能Visual C++6.0开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏等组成。

在开发环境界面中,可以看到在它的上方排列着一系列菜单,如图1所示,而每一个菜单下都有各自的菜单命令。

在进一步与开发环境打交道之前,先了解各个菜单命令的基本功能是很有必要的,因为大部分的操作都是通过菜单来完成的。

图 1 VC++主菜单栏1. File莱单File菜单中的命令主要用来对文件和项目进行操作,如“新建”、“打开”、“保存”、“打印”等。

其中各项命令的功能描述如表1所示。

表 1 File菜单命令的快捷键及功能描述菜单命令快捷键功能描述New Ctrl+N 创建一个新项目或文件Open Ctrl+O 打开已有的文件Close 关闭当前被打开的文件Open Workspace 打开一个已有的项目Save Workspace 保存当前项目Close Workspace 关闭当前项目Save Ctrl+S 保存当前文件Save As 将当前文件用新文件名保存Save All 保存所有打开的文件Page Setup 文件打印的页设置(续表)菜单命令快捷键功能描述Print Ctrl+P 打印当前文件内容或选定的当前内容Recent Files 选择打开最近的文件Recent Workspace 选择打开最近的项目Exit 退出Visual C++6.0开发环境2. Edit菜单Edit菜单中的命令用来使用户方便快捷地编辑文件内容,如进行删除、复制等操作,其中大多数命令功能与Windows中标准字处理程序的编辑命令一致,各项命令的快捷键及它们的功能描述如表2所示。

Visual c++6.0常见错误提示汇总

Visual c++6.0常见错误提示汇总

Visual C++6.0 编译错误提示汇总1、fatal error C1010: unexpected end of file while looking for precompiled header directive。

寻找预编译头文件路径时遇到了不该遇到的文件尾。

(一般是没有#include "stdafx.h")2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory不能打开包含文件“R…….h”:没有这样的文件或目录。

3、error C2011: 'C……': 'class' type redefinition类“C……”重定义。

4、error C2018: unknown character '0xa3'不认识的字符'0xa3'。

(一般是汉字或中文标点符号)5、error C2057: expected constant expression希望是常量表达式。

(一般出现在switch语句的case分支中)6、error C2065: 'IDD_MYDIALOG' : undeclared identifier“IDD_MYDIALOG”:未声明过的标识符。

7、error C2082: redefinition of formal parameter 'bReset'函数参数“bReset”在函数体中重定义。

8、error C2143: syntax error: missing ':' before '{'句法错误:“{”前缺少“;”。

9、error C2146: syntax error : missing ';' before identifier 'dc'句法错误:在“dc”前丢了“;”。

Visual C++ 6.0上机指南

Visual C++ 6.0上机指南

Visual C++ 6.0上机指南1.1 Visual C++ 6.0概述Visual C++6.0是微软公司推出的目前使用极为广泛的基于Windows平台的可视化集成开发环境,它和Visual Basic、Visual Foxpro、Visual J++等其它软件构成了Visual Studio(又名Developer Studio)程序设计软件包。

Developer Studio是一个通用的应用程序集成开发环境,包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。

使用Visual Studio,可以完成创建、调试、修改应用程序等的各种操作。

VC++6.0提供面向对象技术的支持,它能够帮助使用MFC库的用户自动生成一个具有图形界面的应用程序框架。

用户只需在该框架的适当部分添加、扩充代码就可以得到一个满意的应用程序。

VC++6.0除了包含文本编辑器,C/C++混合编译器,连接器和调试器外,还提供了功能强大的资源编辑器和图形编辑器,利用“所见即所得”的方式完成程序界面的设计,大大减轻程序设计的劳动强度,提高程序设计的效率。

VC++的功能强大,用途广泛,不仅可以编写普通的应用程序,还能很好地进行系统软件设计及通信软件的开发。

Visual C++ 6.0开发环境的界面如图1所示。

标题栏程序编辑区菜单栏工作空间编译结果输出区图1 VC开发环境1.2 使用Visual C++ 6.0建立C语言应用程序利用VC++6.0提供的一种控制台操作方式,可以建立C语言应用程序,Win32控制台程序(Win32Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互是通过一个标准的正文窗口,下面我们将对使用Visual C++ 6.0编写简单的C语言应用程序作初步的介绍。

1.安装和启动运行Visual Studio软件中的setup.exe程序,选择安装Visual C++ 6.0,然后按照安装程序的指导完成安装过程。

VC++6.0使用手册(史上最全)

VC++6.0使用手册(史上最全)

图1-1Visual C++界面开项目工作区文件时其他文件随即会自动打开。

在此文件夹下还会创建 Res(资源)、Debug(调试)、Release(发行)等子文件夹。

2.2编辑 在编辑窗口打开、浏览文件、输入、修改、复制、剪切、粘贴、查找、替换、撤销等操作,可以通过菜单完成,也可以通过工具栏按钮完成,这些与 Word 之类的 windows 编辑器用法完全相同,这里就不再重复叙述了。

2.3辅助VC 不仅提供了“语法着色”帮助我们阅读程序,还可以通过一些快捷键检查常见的括号不匹配错误。

MSDN 也可以在编辑过程中提示存在的变量名、函数名。

很多程序员借助类似 Visual Assist X 的工具辅助开发,减少程序出错的可能性。

3.开发 C 程序3.1开发单个 C 语言程序1. 创建一个工作文件夹。

由于开发过程会产生一系列文件,建议每开发一个新的 C 程序都创建一个工作文件夹。

还可以将所有工作文件夹集中到一起,如E:\LXH\EX01-01 、E:\LXH\EX03-02 等。

2. 启动 Visual C++。

3. 新建一个 C 语言源程序。

选择菜单:File 下的 New 菜单项,出现如图 1-2 所示 new(新建)对话框。

图1-2选择菜单File下的New菜单项选择 Files标签下的 C++Source File 在“E:\LXH\EG01-01”文件夹中创建C 程序:eg01-01.c,如图 1-3 所示。

图1-3Files标签4. 输入、编辑源程序。

注意不要输入中文标点符号,要及时按 Ctrl+S 保存文件,如图 1-4 所示。

图1-4输入源程序5.编译、连接。

点击“BuildMiniBar”工具栏上的“Build”按钮进行编译、连接。

也可以选择菜单 Build 下的 Build (F7) 菜单项或Rebuild All菜单项。

更简捷的方法是直接按 F7 功能键。

Visual C++将提示创建默认工作区,如图 1-5 所示。

VC++_6.0_使用方法详解

VC++_6.0_使用方法详解
6
[Project]工程菜单
[Project]菜单共有 6个选项: 菜单共有6
1、Set Active Project 在多个工程中选定当前活动工程。 2、Add to Project 向当前工程添加文件、文件夹、数据连接 组件,以及 ActiveX 控件。 、Visual C C组件,以及 组件,以及ActiveX ActiveX控件。 源代码控制具。 3、source Control Control源代码控制具。 设置工程间的依赖关系。 4、 Dependencies Dependencies设置工程间的依赖关系。 5、 Settings 设置工程属性(调试版本、发布版本和共同部分) 。 6、Export Makefile 导出应用程序的 Make( *.mak )文件。 导出应用程序的Make( Make(* mak)
4
[View]视图菜单
1 和7): [View] 菜单共有 9个选项,分成 6组(初始时没有 (初始时没有1 [View]菜单共有 菜单共有9 个选项,分成6
1、ClassWizard (或 Ctrl+W), 激活 MFC ClassWizard 类向导 ClassWizard(或 (或Ctrl+W), Ctrl+W),激活 激活MFC 工具,用来管理类、消息映射等。 2、Resource Symbols 对工程所定义的所有资源标号,进行 浏览和管理。 ID 的包含头文件 。 3、 Resource Includes 用于设定资源 用于设定资源ID ID的包含头文件 4、Full Screen 全屏显示,按 Esc 退出全屏显示。 全屏显示,按Esc Esc退出全屏显示。 5、Workspace 显示工作区窗口。 6、Output 显示输出窗口。 7、Debug Windows 在调试状态下控制一些调试窗口。 8、Refresh 刷新当前显示窗口。 5 9、Properties 查看和修改当前窗口所显示的对象的属性。

C语言上机软件VC++6.0中文版安装,学习Visual C++ 6.0编程环境的使用

C语言上机软件VC++6.0中文版安装,学习Visual C++ 6.0编程环境的使用

Microsoft Visual C++6.0介绍从2008年4月开始,全国计算机等级考试将全面停止Turbo C2.0(简称TC)软件的使用,所有参加二级C语言、三级信息技术、网络技术和数据库技术上机考试的考生,都要在Visual C++6.0(简称VC)环境下调试运行C程序。

众所周知,VC软件主要是用来开发C++程序的,如何在VC下调试运行C程序,对于众多程序设计者来说,确实是一个新的话题。

VC与TC的差异,主要是体现在程序设计语言C++与C的关系上。

其实,了解计算机程序设计的人都知道,C++是C语言的升级板,VC是在Windows进行C++程序设计的主要软件,VC完全兼容了C的功能,也就是说,在VC下是完全能够进行C语言程序开发。

我以前下载安装过很多次_VC++6.0中文版,但是每次都无法正常安装使用,下面就让我告诉你下载地址吧,保证可以正常使用,我也是偶然碰到的按住ctr点击“全国计算机等级考试C语言上机软件_VC++6.0中文版.rar”安装安装后你可能会出现下面的对话框,在左下角“不再显示此信息”勾上,然后点击“运行程序就”可以了Visual C++ 6.0编程环境的使用目录1 编制并运行一个简单程序 (3)1.1编制并运行程序的“四步曲” (3)1.2工程(P ROJECT)以及工程工作区(P ROJECT W ORKSPACE) (3)1.3启动并进入VC6的集成开发环境 (4)1.4创建工程并输入源程序代码 (5)1.5不创建工程,直接输入源程序代码 (8)1.6编译、链接而后运行程序 (8)1.7及时备份自己的创作 (9)1.8将自己设计的产品提供给他人使用 (9)2 VC6集成开发环境使用参考 (10)2.1VC6的常用菜单命令项 (10)2.2VC6的主要工作窗口 (12)3 严谨思维,调试程序 (13)3.1什么时候需要对程序进行调试 (13)3.2对程序进行调试的基本手段和方法 (14)3.3对一个简单程序的调试过程 (15)3.4设计合适的程序调试方案 (17)3.5优秀程序员的基本素质——丰富的想象、严谨的思维 (18)4 编译与链接过程中常见的出错提示 (20)4.1常见编译错误 (21)4.2常见链接错误 (24)1 编制并运行一个简单程序1.1 编制并运行程序的“四步曲”让我们用VC6先来编制一个最简单的程序,并让它运行(执行)而得出结果,以此来作为了解VC6的开端。

vc++6.0调试方法(附有快捷键)

vc++6.0调试方法(附有快捷键)

vc++6.0调试⽅法(附有快捷键)调试程序可以帮助了解程序是怎样运⾏的。

1、如何快速地规范代码缩进格式选中所需要规范的代码,按alt+F82、如何在Release状态下进⾏调试Project->Setting…->Project Settings对话框,选择Release状态。

“C/C++”标签页中的Category选General,Optimizations 选Disable(Debug),Debug info选Program Database。

在“Link”标签页中选中Generate debug info复选框。

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

3、Release和Debug有什么不同。

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

Debug中可以单步执⾏、跟踪等功能,但⽣成的可执⾏⽂件⽐较⼤,代码运⾏速度较慢。

Release版运⾏速度较快,可执⾏⽂件较⼩,但在其编译条件下⽆法执⾏调试功能。

Release的exe⽂件链接的是标准的MFC DLL(Use MFC in a shared or static dll),⽐如MFC42.DLL。

这些DLL在安装Windows的时候,已经配置,所以这些程序能够在没有安装Visual C++ 6.0的机器上运⾏。

⽽Debug版本的exe链接了调试版本的MFC DLL⽂件,如MFC42D.DLL。

在没有安装Visual C++6.0的机器上不能运⾏,因为缺MFC42D.DLL等,除⾮选择use static dll when link。

4、ASSERT和VERIFY有什么区别ASSERT⾥⾯的内容在Release版本中不编译,VERIFY⾥⾯的内容仍然编译,但不再判断真假。

VC6.0应用OpenCV 出现的错误及解决办法

VC6.0应用OpenCV 出现的错误及解决办法

!Error!VC6.0应用OpenCV出现的错误及解决办法王琼西安交大控制工程研究所eagle-sky@1.OpenCV2.2也添加了相关路径。

(P267<<Visual C++数字图象处理开发入门与编程实践>>)未通过编译,程序运行时报错fatal error C1083: Cannot open include file: 'cv.h': No such file or directory。

解决办法:由于编程软件使用的是VC6.0,建议用OpenCV1.0。

2.安装OpenCV1.0,进行相关的全局设置。

不要忘了添加<OpenCV安装目录>\lib,否则连接时报错“LINK : fatal error LNK1181: cannot open input file "..\..\Program Files\OpenCV\lib\highgui.lib" 执行link.exe 时出错.”3. 问题描述:编译没问题,但运行时出现如下警告对话框。

Could not execute: invalid directory (Win32 error 267)解决办法:造成这个错误的原因主要是运行别人的程序时,设置不正确.,工程—>设置,问题出在右边“调试”标签的“工作目录”和你现在运行工程的目录不一致。

把工作目录中的路径去掉即可。

4. pCapture = cvCaptureFromFile(szVideoFileName);不能打开A VI视频文件,解决办法:网上下载一个“K-Lite Codec Pack Full 3.9.3 Beta”(常用视频播放插件合集),安装以后,程序能顺利打开视频文件。

5. 新建工程后,程序编译时报错Linking...LoadImage01Dlg.obj : error LNK2001: unresolved external symbol _cvReleaseImageLoadImage01Dlg.obj : error LNK2001: unresolved external symbol _cvDestroyWindowLoadImage01Dlg.obj : error LNK2001: unresolved external symbol _cvWaitKey LoadImage01Dlg.obj : error LNK2001: unresolved external symbol _cvShowImageLoadImage01Dlg.obj : error LNK2001: unresolved external symbol _cvNamedWindowLoadImage01Dlg.obj : error LNK2001: unresolved external symbol _cvLoadImageDebug/LoadImage01.exe : fatal error LNK1120: 6 unresolved externals执行link.exe 时出错.解决办法:工程-》设置-》连接中,添加对象/库模块cxcore.lib cv.lib ml.libcvaux.lib highgui.lib cvcam.lib即可,如下图(需要用到即可加载几个)。

计算机专业英语—Visual C++6.0操作提示信息

计算机专业英语—Visual C++6.0操作提示信息

4.6
Visual C++ 6.0 操作提示信息
(1) To turn on creation of the .SBR files at compile time Add /FR or /Fr to your command-line compile options. Or (1)在编译时打开SBR文件的创建开关 在命令行中增加编译选项/FR或/Fr。 或者 1) On the project menu, click Settings to open the Project Settings dialog box. 1)在工程菜单单击“设置”打开工程设置的对 话框。
4.6
Visual C++ 6.0 操作提示信息
If the program you are creating uses MFC, you may want to work with a practice program before actually beginning your program.
2) Specify the Project Name, Location, Workspace, Dependency, and Platforms options and then double-click the type of project you want to create. 2) 指定工程名字、存放位置、工作区、从属性和 平台选项,然后双击你想创建的工程类型。
1) Open the project if it is not currently open.
1)若工程当前处于非打开状态则打开该工程。 2) On the Project menu, click Settings to open the Project Settings dialog box. 2)在工程菜单单击“设置”打开工程设置的对话框。

TEMP-C++

TEMP-C++
包含能够格式化数据流的流操纵算子的函数原型
fstream.h
包含从磁盘文件输入和输出到磁盘文件的函数的函数
原型
9 编程题一

给出三角形的三边a、b、c,求三角形的面积。

应先判断a、b、c三边是否能构成一个三角形
#include <stdio.h> #include <math.h> void main( ) { float a,b,c,area,p; scanf("%f,%f,%f",&a,&b,&c); p=(a+b+c)/2; if(a+b>c&&a+c>b&&b+c>a) { area=sqrt(p*(p-a)*(p-b)*(p-c)); printf("Area=%6.2f\n",area); } else printf("Error\n"); }
main() { …. fun(); …. }
函数调用过程示意图
函数调用过程举例
main() { int a,b,c; scanf("%d,%d",&a,&b); c=fun(a,b); (main 函数) c=fun(a,b); 实参 printf("Max is %d",c); fun(int x, int y) (fun 函数) } { int z; fun(int x, int y) 形参 z=x>y?x:y; { int z; return(z); z=x>y?x:y; } return(z); }
C++内容纲要

第14章 VC++6.0集成开发环境使用

第14章 VC++6.0集成开发环境使用

第14章VC++6.0集成开发环境使用本章将学习到下列内容:●VC++6.0的安装●VC++6.0拷贝安装方法●VC++6.0的使用●VC++6.0的调试工具●VC++6.0的常见错误C++语言是在C 语言的基础上发展而来,它增加了面向对象的编程,成为当今最流行的一种程序设计语言。

Microsoft Visual C++6.0是微软公司开发的,面向Windows 编程的C++语言工具。

它不仅支持C++语言的编程,也兼容C语言的编程。

由于VC++6.0被广泛地用于各种编程,使用范围很广。

本章简要地介绍如何在VC++6.0下运行C语言程序。

14.1 VC++6.0的安装Microsoft Visual C++ 6.0是一个比较大的软件包,它的安装与Windows下其他应用程序的安装类似。

不过对于学习用的VC++6.0,安装时有时候会出错,导致后续安装不能成功。

当VC安装出现错误时,我们也可以不通过安装,而直接将VC拷贝到硬盘上,然后做相应的设置,即可以达到和安装同样的使用效果。

以下分两方面来介绍VC++6.0的安装。

●利用安装盘安装●直接拷贝14.1.1 利用安装盘安装要使用Visual C++6.0,必须运行windows95以上或windows NT4.0以上的版本(其他配置要求见Visual C++ 6.0文档)。

安装的方式有很多,可以硬盘安装也可以光盘安装,二者区别不大,现以光盘安装为例说明,安装步骤如下(整个安装的过程按提示进行没有特别说明的一路按“下一步”按钮就行;如果在安装的过程出现提示java虚拟机版本不够的情况按提示升级虚拟机版本,重启后会自动安装)。

1.启动光盘,出现如图14.1所示界面表示安装程序启动。

2.接受用户协议,如图14.2所示。

3.输入产品号和用户ID,如图14.3所示。

4.安装选择(一般选自定义),如图14.4所示。

图14.4 安装选项5.选择安装的路径(可以在编辑框中修改,也可以通过”浏览”按钮来定位自己准备安装的位置),如图14.5所示。

visul c++6.0的使用

visul c++6.0的使用

一、Visual C++实验环境介绍1、Visual C++简介Visual C++是Microsoft公司的Visual Studio开发工具箱中的一个C++程序开发包。

VisualStudio提供了一整套开发Internet和Windows应用程序的工具,包括VisualC++, Visual Basic, Visual Foxpro, Visual InterDev, Visual J++以及其他辅助工具,如代码管理工具Visual SourceSafe和联机帮助系统MSDN。

Visual C++包中除包括C++编译器外,还包括所有的库、例子和为创建Windows应用程序所需要的文档。

从最早期的1.0版本,发展到最新的6.0版本,Visual C++已经有了很大的变化,在界面、功能、库支持方面都有许多的增强。

最新的6.0版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。

Visual C++一般分为三个版本:学习版、专业版和企业版,不同的版本适合于不同类型的应用开发。

实验中可以使用这三个版本的任意一种。

Visual C++集成开发环境(IDE)集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起的用于开发应用程序的软件系统。

Visual C++软件包中的Developer Studio就是一个集成开发环境,它集成了各种开发工具和VC编译器。

程序员可以在不离开该环境的情况下编辑、编译、调试和运行一个应用程序。

IDE中还提供大量在线帮助信息协助程序员做好开发工作。

Developer Studio中除了程序编辑器、资源编辑器、编译器、调试器外,还有各种工具和向导(如AppWizard和ClassWizard),以及MFC类库,这些都可以帮助程序员快速而正确地开发出应用程序。

向导(Wizard)向导是一个通过一步步的帮助引导你工作的工具。

如何解决VISUAL C++ 6.0不正确连接的问题

如何解决VISUAL C++ 6.0不正确连接的问题

Part1:1. 如何解决Visual C++ 6.0不正确连接的问题情景:明明改动了一个文件,却要把整个项目全部重新编译链接一次。

刚刚链接好,一运行,又提示重新编译链接一次。

这是因为出现了未来文件(修改时间和创建时间比系统时间晚)的缘故。

可以这样处理:找到工程文件夹下的debug目录,将创建和修改时间都比系统时间的文件全部删除,然后再从新“Rebuild All”一次。

2. 引起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时将得到又编译器写入目标文件模块,但除非在文件中明确包含这些库名,否则这些库不会被链接进工程文件。

VS编译C语言方法(工程的建立

VS编译C语言方法(工程的建立

VS编译C语言方法(工程的建立)大家在学习C语言的时候接触的一般都是VC6.0。

但是VC6.0只能编译C或者C++,不支持C#,集成度不是很高。

而且界面并不十分友好,不能自动猜测关键字,函数的参数也不能自动标示。

最关键的是,编译的时候纠错信息是全英文的,对于初学者十分不方便。

在演示编译一些简单的C程序时VC6.0可以胜任,但是在进行稍微复杂的程序编辑工作时,VC6.0就有点力不从心了。

现在微软的基于.NET的开发软件已经更新至Visual Studio 2010(VS2010)但是VS2010版本还不是最完善,所以目前为止,最流行的还是Visual Studio 2008(内部代号VC9.0,以下简称VS2008)。

大家接触VS2008一般都是从C#或者VB语言开始的,其实VS2008作为一款集成度很高的编译软件,其本身也是支持C语言的。

大家可以用它来进行C语言的编译。

相较于VC6.0,VS2008更加的智能,更加人性化。

而且VS2008还支持windows7(VC6.0不支持),所以很多装了windows7的朋友就不用头疼了。

下面,就向大家啊演示如何使用VS2008编译C程序,本文中使用VS2008 professional版本。

1.打开VS2008,这就不用多说了吧2.打开了VS2008的主界面,然后选择,文件→新建→项目弹出如图对话框在项目类型中选择VC++→win32 然后在右侧模板中选择win32控制台应用程序,再在下面输入一个名称(项目名称,不用带.C)选择保存位置后确定好了,弹出个对话框,不管它,下一步接下来注意了,这个对话框中,应用程序类型要选择控制台应用程序,附加选项一定要选中“空项目”。

然后点完成。

然后对话框消失,回到VS主界面,这时会在左侧和右侧多了如图工具栏“解决方案管理器”,如果没有,请点击快捷键(最左边)在源文件上点右键,选择“添加→新建项”。

这里注意,如果你已经有写好的C源文件,那么要选择“现有项”又打开个对话框,不管左边的,在右边的模板中选择C++文件(注一),在下面的名称中输入源文件的名字加上.C(注二),保存位置用默认的。

VC6.0 IDE的使用和程序调试技巧

VC6.0 IDE的使用和程序调试技巧

项目工作区窗口

ClassView页
FileView页 ResourceView页
FileView页
ClassView页
File->New->Proj32 Application
基于WINDOWS平台的32位开发环境开发应用程序,SDK程序。 入口函数为WinMain
文件类型 Active Server Page Bitmap File C/C++ Header File HTML Page Resource Script Resource Template
Visual C++6.0 可以创建的文件类型 说明 文件类型 网页制作 Binary File 创建位图文件 C++ Source File 创建 C/C++头文件 Cursor File 创建 HTML 文件 Icon File 创建资源脚本文件 Text File 创建资源模板文件 SQL Script File
6:使用单步执行到程序结束


设置断点以后,调试运行程序时,程序 开始执行,并且运行到断点处暂停下来, 此时我们有机会观察程序的运行情况, 并且诊断程序目前的状态是否如我们所 预期的那样。 不过我们先不着急观察程序的状态,而 是来看看如何控制程序的运行,以便在 我们需要的时候让程序暂停下来,并且 以我们需要的方式走走停停!
方法是使用单步执行手段stepover让程序向前走一步停止调试停止调试并重新启动调试单步执行当前位置对比调试运行时出现的调试菜单debug和调试工具栏根据图标查找对应项设置断点调试运行程序此时程序暂停在断点处等待选择debug菜单找到最后一项quickwatch并点击输入想要观察的变量变量名变量的值点击addwatch点击addwatch看到如下画点击单步执行按钮或者菜单程序则向前单独运行一个步骤每向前执行一步就会暂停下来这样我们就有充足的时间观察所关心的变量名称按下f5键可以让程序从当前位置向前执行直到遇见下一个断点或者程序结束下面是赠送的ppt模板不需要朋友可以下载后编辑删除
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、流程控制 1、 丢掉语句结束标记“;”,尤其是 for 语句中表达式后或 do-while 语句后的分号,或在预
处理命令后边、while()后、for()后加“;”; 2、 If 语句或循环语句中逻辑表达式或关系表达式书写错误。一定要注意 C 语言的条件与数
学 表 达 式 的 区 别 ( 例 如 我 们 数 学 中 经 常 写 到 的 0 ≤ x ≤ 9, 在 C 语 言 中 应 该 写 成
改正编译错误的关键是要能正确理解编译器给出的编译错误信息。VC++环境中的编译、 链接错误信息是用英文表示的。对于英文基础薄弱的读者,可以参考本实验指导书后面的 “VC++编译、链接常见错误和警告信息中英文对照”。
通常情况下,一个语法错误可能产生多条编译错误信息,这是由于株连错误造成的,建 议读者在处理编译错误时,找到第一个出现错误的位置改正后重新编译。这样能够避免被株 连错误迷惑。值得指出的是,现在大部分编译器对错误的定位不精确,如果在编译器指出的 行没有发现错误,应该向前查找错误。例如,当提示第 10 行发生错误时,如果在第 10 行没 有发现错误,请从第 10 行开始往前查找错误并修改之。
运行时错误(Run-time errors)是在程序的运行阶段出现的,当运行环境检测到程序 的某些操作无法执行,例如除数为零时,就会出现运行时错误。当运行环境检测到程序的某 些操作是被禁止的,也会产生运行时错误。例如,访问数组时超越数组的边界,空指针引用 (NUL用了)等等。
四、函数 1、 函数定义的时候,函数头部加分号,而函数声明的地方忘了加分号 2、 函数实参格式不对,主要表现在:给出实参时,多给出数组类型,或者,形参是数组 int
a[];的时候,给出的 a[]或 a[I]. 3、 递归时忘了设置边界条件,这样易造成死循环调用。 4、使用函数之前未声明(包括 C 库函数的声明)。建议大家,将所定义的一切函数都在程 序开始的预处理命令后加上函数原型的声明,这样做不仅可以避免错误,而且整个程序的结 构看起来更清楚。 五、结构体共用体 1、 结构体类型定义有误,主要表现在:结构体类型里还有嵌套的时候,忘记了成员名称。
六、文件 1、 使用之前没有打开文件,使用之后没有关闭文件。 2、 相关函数的调用格式有误。请一定注意实参的类型、顺序、个数上与函数原型(或函数
声明)的一致。
Visual C++6.0 中的调试工具使用入门
一、程序开发过程中出现的错误类型
我们在进行程序设计时,不可避免地会犯错误。程序中的错误可以分为三类:编译错误、 运行时错误和逻辑错误。
C 语言常见错误及解决方法
(注:红色粗体是常见的错误,请大家检查自己的程序,并注意尽量不要犯这些常见的错误。 其余它体是避免错误的方法和正确的写法) 一、基础知识和数据类型、表达式 1、 拼写错误,尤其是 include,main,void,float 等词。C 语言的 32 个关键字与基本含义如下: double :声明双精度变量或函数 int: 声明整型变量或函数 char :声明字符型变量或函数 float:声明浮点型变量或函数 void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) auto :声明自动变量 一般不使用 struct:声明结构体变量或函数 break:跳出当前循环 else :条件语句否定分支(与 if 连用) long :声明长整型变量或函数 switch :用于开关语句 case:开关语句分支 enum :声明枚举类型 register:声明积存器变量 typedef:用以给数据类型取别名(当然还有其他作用) extern:声明变量是在其他文件正声明(也可以看做是引用变量) return :子程序返回语句(可以带参数,也看不带参数) union:声明联合数据类型 const :声明只读变量 short :声明短整型变量或函数 unsigned:声明无符号类型变量或函数 continue:结束当前循环,开始下一轮循环 for:一种循环语句(可意会不可言传) signed:生命有符号类型变量或函数 default:开关语句中的“其他”分支 goto:无条件跳转语句 sizeof:计算数据类型长度 volatile:说明变量在程序执行中可被隐含地改变 do :循环语句的循环体 while :循环语句的循环条件 static :声明静态变量 if:条件语句 2、 {},[],(),‘’,“”不配对。解决这个问题最好的方法就是每当写这些符号的时候就
先写成一对,然后再在中间加内容。 3、 忘记在语句的末尾加分号,或在预处理命令后多加分号。记住:每一个语句的后边都要
加分号,而预处理命令并不是语句,所以不加分号,他们必须每行一条,不能把多个命
令写在一行。 4、 混淆/和\;注释对应的符号是/* */,而转义字符是以\开头,除号是/。 5、 printf()和 scanf()的参数设置有误,主要表现在以下几方面: 类型不匹配的问题。(例如:有 float a=3.5,但输出的时候 printf(“a=%d”,a);则屏幕上会
编译错误(Compile errors)又称为编译时错误(Compiling-time errors): 是由于 错误的编码产生的。例如关键字拼写错误、将中文标点符号当成英文符号使用、遗漏了某些 必要的标点符号或者使用了一个没有定义的标识符。
编译错误一般都是语法错误,当编译器对程序进行语法检查时,都能发现这些错误,并 能够指出产生错误的位置(标出行号)。我们可以根据编译出错信息指出的行号找到对应的 源代码行改正错误,重新编译源程序。只有当所有的编译错误被改正后,才能通过编译检查, 产生目标代码文件。
显示出 a=0.00000 或者提示其它运行错误)。基本原则是:float 对应%f, int 对应%d, char 对应%c。 个数不匹配。无论是哪个函数,都可以有 n 个参数,第一个永远是“”括起来的内容, 表示输出格式。剩下的 n-1 个是输出的变量或者输入的变量的地址。需要注意的是,如 果后边有 n-1 个参数,那么前边一定对应 n-1 个%f 一类的格式说明符。 scanf()中变量前忘了加&。记住:scanf()中变量前要有&(但后边学到的字符数组名和指 针前不用加) 6、 定义标识符的时候经常出现使用非法字符的情况,例如:标识符中不能用空格,也就是 说不能有这样的定义:int radium of circle;一般情况下可用下划线将三个单词连接在一 起。 7、 在使用变量前未定义,或未初始化。例如:若下边的 sum 未定义,则在编译时会提示相 应的错误信息,而若未初始化为 0,则求和的结果一定是错误的。 void main() { int I,a[10], sum=0; /*只要下边要用,这个定义就必须要有,一般情况下也要有初始值*/ for(I=0;I<10;I++) sum+=a[I]; printf(“%d”,sum); } 8、 符号常量定义错误。例如:#define PI=3.14159,这里的=应该换成空格。 9、 计算错误。主要注意:++,――和其它运算符一起运算时,除根据优先级进行计算时, 还要考虑先后位置的特殊含义;数据类型不一致时发生的自动转换也会导致计算的误 差;还要注意求模结果的符号与被除数相同;某些特殊情况下 使用懒惰求值法。 10、 不能除以 0,要做合法性检查; 11、类型溢出。记住每种数据类型的取值范围,确保数据在所定义类型范围之内; 12、 数学表达式的格式有误。常见的有:(1)数学与 C 语言运算表达式的混淆(例如: =表示赋值,而= =才表示我们数学中的相等关系)。(2)、忽略了运算的优先级。解决 这个问题的最好方法就是写数学表达式时不要从左到右,而是按优先级的顺序写,写完 优先级高的一个表达式后加上()再写下一级的表达式,例如:计算梯形的面积时,要 s=((a+b)*h)/2,不要 1/2*a+b*h. (3)忽略了计算和赋值时的自动转换。例如:float half=1/2; 这样,因为=右边是整数相除的结果为整数 0,不会得到 0.5 存入 half,进而会影响下边 的计算结果。要想不在这儿绊跟头,当计算不同类型的数据时,一定注意会不会出现引 起错误的自动转换,建议最好加上强制转换。(4)赋值号左边不是变量,例如:若有#define PI 3.14,程序中又出现 PI=3.14159。又例如:f(n)=f(n-1)*n(这是典型的数学语言,在 C 语言中右边的乘积不能正确存储,而左边又是一个函数调用)。 13、 使用库函数前,尤其是数学函数忘了加#include<?.h>。
(例如:下边的例子中,有些同学经常忽略了 birthday) 2、 结构体类型名和结构体变量名混淆。例如:
struct STU {….
Struct data {int year,month,day; }birthday
}; struct STU a; struct STU 是类型名称,而且不分配空间,且不能直接引用。只有定义了结 构体类型 struct STU 的变量 a 以后,才为 a 分配相应的内存空间,引用时也要是 a.??? 3、 结构体变量的成员引用不正确,尤其是当结构体类型中有嵌套定义的时候。一定要一级 一级的引用。例如:上边的例子:如果引用其中的年的话,一定是 a.birthday.year. 不 能直接 a.year. 4、 对结构体变量进行输入输出的时候,整体输入或整体输出。除作为函数参数外,不能对 结构体变量整体操作,只能一个成员一个成员地输入、输出。 5、 不理解共用体的“共占内存”。对共用体中的成员变量,一定要靠一个标记区别它们, 并分别按不同类型引用它们。切记:共用体变量不能做函数形参。
三、数组与指针 1、 字符串的输入有错误:主要表现在使用 scanf()或 gets()时加了&,或输入字符串时用循
环,(这样的话,字符个数无论多长,都不会为自动加\0,将来引用的时候也就不能以 字符串的形式引用。) 2、 对字符串的处理中,循环条件仍然写成 I<N。由于字符串是不定长的,所以循环条件一 般为 str[I]!=’\0’ 或 I<strlen(str) 3、 而输入所对应的变量是指针时(常见的有:输入的变量是字符数组名或指向字符串的指 针)不能加&。 4、 指针定义后未赋值就引用。如果在定义时不知道赋什么值,可以用 p=NULL 赋初值,以 避免引起的灾难性错误。 5、 分不清 p 和*p。前者是指针,即地址,后者表示指针所间接引用的数据,但如果是二 级指针或多级指针,取*以后得到的仍然可能是地址。
相关文档
最新文档