关于vc++6.0开发工具的介绍_第1页
关于vc++6.0开发工具的介绍_第2页
关于vc++6.0开发工具的介绍_第3页
关于vc++6.0开发工具的介绍_第4页
关于vc++6.0开发工具的介绍_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC 6 0 编译环境介绍编译环境介绍 大家可能一直在用 VC 开发软件 但是对于这个编译器却未必很了解 原因是多方面 的 大多数情况下 我们只停留在 使用 它 而不会想去 了解 它 因为它只是一个工具 我们宁可把更多的精力放在 C 语言和软件设计上 我们习惯于这样一种 模式 建立一 个项目 然后写代码 然后编译 反反复复调试 但是 所谓 公欲善其事 必先利其器 如果我们精于 VC 开发环境 我们是不是能够做得更加游刃有余呢 Visual C 可新建的 Projects 项目 Visual C 可新建的 File 文件 Visual C 的的 Build 设置设置 1 Compile TEST cpp 选项 只编译当前文件而不调用链接器或其它工具 输出窗口将 显示编译过程检查出的错误或警告信息 在错误信息处单击鼠标右键 可以得到错误代码 的位置 2 Build TEST exe 选项 对最后修改过的源文件进行编译和链接 3 Rebuild All 选项 该选项允许用户编译所有的源文件 而不管它们何时曾经被修改 过 4 Batch Build 选项 该选项能单步重新建立多个工程文件 并允许用户指定要建立的 项目类型 VC 提供了两种目标应用程序类型 Win32 Release 发行版 Win32 Debug 调试版 我们先来看一下 VC 的处理流程 大致分为两步 编译和连接 源文件通过编译生成 了 obj 文件 所有 obj 文件和 lib 文件通过连接生成 exe 文件或 dll 文件 下面 我们分别 讨论这两个步骤的一些细节 工程配置对话框工程配置对话框 在这个对话框中 左上方的下拉列表框用于选择一种工程配置 包括有 Win32 Debug Win32 Release 和 All Configurations 指前两种配置一起 某些 选项在不同的工程配置中有不同的缺省值 左边的树形视图给出了当前工程所有的文件及 分类情况 如果我们把工程 Schedule 置为高亮显示 正如图 9 1 那样 对话框的右边 就会出现总共十个选项卡 其中列出了与工程有关的各种选项 不少选项卡中有一个 Reset 按钮 按下它后可以把选项卡内的各项设置恢复到生成工程时的初始值 如果我们 在树形视图中选择一个文件类或一个文件 那么对话框右边的选项卡会自动减少到一个或 两个 其中列出的都是与选中的文件类或文件有关的选项 编译参数的设置编译参数的设置 主要通过 VC 的菜单项 Project Settings C C 页来完成 我们 可以看到这一页的最下面 Project Options 中的内容 一般如下 nologo MDd W3 Gm GX ZI Od D WIN32 D DEBUG D WINDOWS D AFXDLL D MBCS Fp Debug WritingDlgTest pch Yu stdafx h Fo Debug Fd Debug FD GZ c 各个参数代表的意义 可以参考 Project Option 语法解释 比如 nologo 表示编译时不 在输出窗口显示这些设置 我们可以把这个参数去掉来看看效果 等等 一般我们不会直 接修改这些设置 而是通过这一页最上面的 Category 中的各项来完成 1 General 一些总体设置 Warning level 用来控制警告信息 None 表示不显示任 何警告 L1 表示只显示严重的警告 L2 表示显示比 L1 次严重的警告 L4 则表示显示出 所有的警告 包括那些安全忽略的警告 Warnings as errors 将警告信息当作错误处理 这样在编译完毕后就无法启动连接器来进行连接 Optimizations 是代码优化 可以在 Category 的 Optimizations 项中进行更细的设置 Generate browse info 用以生成 sbr 文 件 记录类 变量等符号信息 可以在 Category 的 Listing Files 项中进行更多的设置 Debug info 生成调试信息 None 不产生任何调试信息 编译比较快 Line Numbers Only 仅生成全局的和外部符号的调试信息到 OBJ 文件或 EXE 文件 减小目标文件的尺 寸 C 7 0 Compatible 记录调试器用到的所有符号信息到 OBJ 文件和 EXE 文件 Program Database 创建 PDB 文件记录所有调试信息 Program Database for Edit char tBuffer This is a character buffer sBuffer 和 tBuffer 指向的是同一块内存空间 Enable Function Level Linking 告诉 编译器将各个函数按打包格式编译 Enables minimal rebuild 通过保存关联信息到 IDB 文件 使编译器只对最新类定义改动过的源文件进行重编译 提高编译速度 Enable Incremental Compilation 同样通过 IDB 文件保存的信息 只重编译最新改动过的函数 Suppress Startup Banner and Information Messages 用以控制参数是否在 output 窗口 输出 5 Listing Files Generate browse info 的功能上面已经提到过 这里可以进行更多 的设置 Exclude Local Variables from Browse Info 表示是否将局部变量的信息放到 SBR 文件中 Listing file type 可以设置生成的列表信息文件的内容 Assembly Only Listing 仅 生成汇编代码文件 ASM 扩展名 Assembly With Machine Code 生成机器代码和汇编 代码文件 COD 扩展名 Assembly With Source Code 生成源代码和汇编代码文件 ASM 扩展名 Assembly Machine Code and Source 生成机器码 源代码和汇编代 码文件 COD 扩展名 Listing file name 为生成的信息文件的路径 一般为 Debug 或 Release 目录下 生成的文件名自动取源文件的文件名 6 Optimizations 代码优化设置 可以选择 Maximize Speed 生成最快速的代码 或 Minimize Size 生成最小尺寸的程序 或者 Customize 定制优化 定制的内容包括 Assume No Aliasing 不使用别名 提高速度 Assume Aliasing Across Function Calls 仅函数内部不使用别名 Global Optimizations 全局优化 比如经常用到的变量使用寄存器保存 或者循环内 的计算优化 如 i 100 while i 0 i x y 会被优化为 i 100 t x y while i Settings Link 页来完成 我 们可以看到这一页的最下面 Project Options 中的内容 一般如下 nologo subsystem windows incremental yes pdb Debug WritingDlgTest pdb debug machine I386 out Debug WritingDlgTest exe pdbtype sept 下面我们分别来看一下 Category 中的各项设置 1 General 一些总体设置 可以设置生成的文件路径 文件名 如在 Output file name 下面的编 辑框中可输入 C bin TEST exe 连接的库文件 Generate debug info 生成 Debug 信息到 PDB 文 件 具体格式可以在 Category Debug 中设置 Ignore All Default Libraries 放弃所有默认的库连接 Link Incrementally 通过生成 ILK 文件实现递增式连接以提高后续连接速度 将使程序可以在上一次编 译的基础上被编译 即增量编译 而不必每次从头开始编译 这种方式下生成的文件 EXE 或 DLL 较 大 Generate Mapfile 生成 MAP 文件记录模块相关信息 Enable Profiling 这个参数通常与 Generate Mapfile 参数同时使用 而且如果产生 Debug 信息的话 不能用 PDB 文件 而且必须用 Microsoft Format 2 Customize 这里可以进行使用程序数据库文件的设置 选中 Use program database 允许使用程 序数据库 这样连接器会把调试信息放在程序数据库中 如果不选中该选项 那么也不能使用递增连接方 式 Force File Output 即使某个模块引用了一些未定义或者重复定义的符号 连接器仍然会强制 但 不一定能正确运行 产生输出文件 EXE 或 DLL Print Progress Messages 可以将连接过程中的进 度信息输出到 Output 窗口 3 Debug 设置是否生成调试信息 以及调试信息的格式 格式可以有 Microsoft Format COFF Format Common Object File Format 和 Both Formats 两种都有 三种选择 Separate Types 表示 将 Debug 格式信息以独立的 PDB 文件存放 还是直接放在各个源文件的 PDB 文件中 选中的话 表示 采用后者的方式 这种方式调试启动比较快 4 Input 这里可以指定要连接的库文件 放弃连接的库文件 还可以增加额外的库文件目录 一般 是相对于本项目的目录 如 Lib Force Symbol References 可以指定连接特定符号定义的库 如 在 Object library Modules 下面的编辑框中输入 TestDll lib 在 Additional library path 下面的编辑 框中输入 C bin 可用 Workspace 另一个工程编译的静态库 5 Output Base Address 可以改变程序默认的基地址 EXE 文件默认为 0 x400000 DLL 默认为 0 x10000000 操作系统装载一个程序时总是试着先从这个基地址开始 Entry Point Symbol 可以指定 程序的入口地址 一般为一个函数名 且必须采用 stdcall 调用约定 一般 Win32 的程序 EXE 的入 口为 WinMain DLL 的入口为 DllEntryPoint 最好让连接器自动设置程序的入口点 默认情况下 通过 一个 C 的运行时库函数来实现 控制台程序采用 mainCRTStartup 或 wmainCRTStartup 去调用程序的 main 或 wmain 函数 Windows 程序采用 WinMainCRTStartup 或 wWinMainCRTStartup 调用程序的 WinMain 或 wWinMain 必须采用 stdcall 调用约定 DLL 采用 DllMainCRTStartup 调用 DllMain 函 数 必须采用 stdcall 调用约定 Stack allocations 用以设置程序使用的堆栈大小 请使用十进制 默认为 1 兆字节 Version Information 告诉连接器在 EXE 或 DLL 文件的开始部分放上版本号 一般情况 下都不用改变 值得注意的是值得注意的是 上面各个参数是大小写敏感的 在参数后加上 表示该参数无效 各个参数值选项有 的表示为该参数的默认值 可以使用页右上角的 Reset 按钮来恢复该页的所有默认设置 9 Resources 选项卡选项卡 Resources 选项卡控制着 VC6 的资源编译器 如图 9 5 所示 我们可以指定 编译后生成的资源文件的路径 资源的语言类型 以及额外的资源包含目录 MIDL 选项卡 这个选项卡与 COM 组件对象模型 编程有关 我们不讨论它 10 Browse Info 选项卡选项卡 在这个选项卡中 我们可以指定是否在建立工程的同时也生成浏览信息文件 有了这个文件后 我们就能够在文本编辑器中通过关联菜单的相应命令快速定位到某个符号的定义或引用 的地方 11 Pre link step 这个选项卡用于添加在连接之前要执行的命令 l2 Post build step 这个选项卡用于添加在工程建立完毕之后要执行的命令 如 copy debug TestDll lib C bin TestDll lib 并在 C 盘下建一个 bin 目录 做的件事情就是把 TestDLL lib 拷贝到 C bin 所在的文件夹中 其它一些参数设置 13 Project Settings General 可以设置连接 MFC 库的方式 静态或动态 如果是动态连接 在你的软件发布时不要忘了带上 MFC 的 DLL 第二个选项用于指定在编译连接过程中生成的中间文件和 输出文件的存放目录 对于调试版本来说 缺省的目录是工程下面的 Debug 子目录 最下面的第三个选 项用于指定是否允许每种工程配置都有自己的文件依赖关系 主要指头文件 由于绝大多数工程的调试 版本和发布版本都具有相同的文件依赖关系 所以通常不需要更改该选项 14 Project Settings Debug 可以设置调试时运行的可执行文件 如果正在编写的程序是一个 DLL 那么应在此处指定一个用来调试该 DLL 的 EXE 文件 另外三个选项可以指定用于调试的工作目录 开始调试时给程序传送的命令行参数 以及进行远程调试时可执行文件的路径 把类别切换到 Additional DLLs 后 我们可以指定在开始调试时是否为一些额外的 DLL 装载调试符号信息 只有装载了符号信息后 才能跟踪进 DLL 15 Project Settings Custom Build 可以设置编译 连接成功后自动执行一些操作 比较有用的 是 写 COM 时希望 VC 对编译通过的 COM 文件自动注册 可以如下设置 Description Register COM Commands regsvr32 s c TargetPath echo regsvr32 exe time TargetDir TargetName trg Outputs TargetDir TargetName trg 16 Tools Options Directories 设置系统的 Include Library 路径 一些小窍门一些小窍门 1 有时候 你可能在编译的时候 计算机突然非法关机了 可能某人不小心碰了电源或你的内存不 稳定等原因 当你重启机器后打开刚才的项目 重新进行编译 发现 VC 会崩掉 你或许以为你的 VC 编译器坏了 其实不然 你试试编译其它项目 还是好的 你只要将项目的 ncb opt aps clw 文件以及 Debug Release 目录下的所有文件都删掉 然后重新编译就行了 2 如果你想与别人共享你的源代码项目 但是把整个项目做拷贝又太大 你完全可以删掉以下文件 dsw ncb opt aps clw plg 文件以及 Debug Release 目录下的所有文件 3 当你的 Workspace 中包含多个 Project 的时候 你可能不能直观地 一眼看出来哪个是当前项目 可以如下设置 Tools Options Format 然后在 Category 中选择 Workspace window 改变其默认的 字体 比如设成 Fixedsys 就行了 4 如何给已有的 Project 改名字 将该 Project 关掉 然后以文本格式打开 dsp 文件 替换原来的 Project 名字即可 5 VC6 对类成员的智能提示功能很有用 但有时候会失灵 你可以先关掉项目 将 clw 和 ncb 删掉 然后重新打开项目 点击菜单项 View ClassWizard 在弹出的对话框中按一下 Add All 按钮 重新 Rebuild All 应该可以解决问题 断点断点 断点是调试器设置的一个代码位置 当程序运行到断点时 程序中断执行 回到调试器 断点是 最 常用的技巧 调试时 只有设置了断点并使程序回到调试器 才能对程序进行在线调试 设置断点设置断点 可以通过下述方法设置一个断点 首先把光标移动到需要设置断点的代码行上 然后按 F9 快捷键弹出 Breakpoints 对话框 方法是按快捷键 CTRL B 或 ALT F9 或者通过菜单 Edit Breakpoints 打开 打开后点击 Break at 编辑框的右侧的箭头 选择 合适的位置信息 一般情况下 直接选择 line xxx 就足够了 如果想设置不是当前位置的断点 可以选择 Advanced 然后填写函数 行 号和可执行文件信息 去掉断点去掉断点 把光标移动到给定断点所在的行 再次按 F9 就可以取消断点 同前面所述 打开 Breakpoints 对话框后 也可以按照界面提示去掉断点 条件断点条件断点 可以为断点设置一个条件 这样的断点称为条件断点 对于新加的断点 可以单击 Conditions 按钮 为断点设置一个表达式 当这个表达式发生改变时 程序就 被中断 底下设置包括 观 察数组或者结构的元素个数 似乎可以设置一个指针所指向的内存区的大小 但是我设置一个比较的值 但是改动 范围之外的内存区似乎也导致断点起效 最后一个设置可以让程序先执行多少次然后才到达断 点 设置条件断点一定要先设置断点的位置 不是说条件断点就不需要再程序中设置停止行 在 vc 当中如何进行条件断点调试 比如希望停止在 for 循环的第 25 次 if i 24 i i 这一句废 为的是断点能加在这儿 加调试代码 condition 中 i 24 想要设定条件为一个字符串指针等于某个字串时 比较麻烦可以用类型转换来实现 比如设置 char 型指针 str 在等于 2002 时停止 那么我们就在条件里设置 DWORD str 0 x32303032 就好 了 如果有其他条件在用 和 就好了 比如要求紧接着 2002 的还必须是 1111 那么我们在刚才的条件 后面加上 DWORD str 4 0 x31313131 数据断点数据断点 数据断点只能在 Breakpoints 对话框中设置 选择 Data 页 就显示了设置数据断点的对 话框 在编辑框中输入一个表达式 当这个 表达式的值发生变化时 数据断点就到达 一般情况下 这 个表达式应该由运算符和全局变量构成 例如 在编辑框中输入 g bFlag 这个全局变量的名字 那么当 程序中有 g bFlag g bFlag 时 程序就将停在这个语句处 消息断点消息断点 VC 也支持对 Windows 消息进行截获 他有两种方式进行截获 窗口消息处理函数和特 定消息中断 在 Breakpoints 对话框中选择 Messages 页 就可以设置消息断点 如果在上面那个对话框中写入消 息处理函数的名字 那么 每次消息被这个函数处理 断点就到达 我觉得如果采用普通断点在这个函数 中截获 效果应该一样 如果在底下的下拉 列表框选择一个消息 则每次这种消息到达 程序就中断 文件扩展名解读大全文件扩展名解读大全 DEV DEV C 项目工程文件 APS 存放二进制资源的中间文件 VC 把当前资源文件转换成二进制格式 并存放 在 APS 文件中 以加快资源装载速度 资源辅助文件 BMP 位图资源文件 BSC 浏览信息文件 由浏览信息维护工具 BSCMAKE 从原始浏览信息文件 SBR 中生成 BSC 文件可以用来在源代码编辑窗口中进行快速定位 用于浏览项目 信息的 如果用 source brower 的话就必须有这个文件 可以在 project options 里去掉 Generate Browse Info File 这样可以加快编译进度 C 用 C 语言编写的源代码文件 CLW ClassWizard 生成的用来存放类信息的文件 classwizard 信息文件 ini 文件 的格式 CNT 用来定义帮助文件中 Contents 的结构 CPP 或 CXX 用 C 语言编写的源代码文件 CUR 光标资源文件 DEF 模块定义文件 供生成动态链接库时使用 DLG 定义对话框资源的独立文件 这种文件对于 VC 工程来说并非必需 因为 VC 一般把对话框资源放在 RC 资源定义文件中 DSP VC 开发环境生成的工程文件 VC4 及以前版本使用 MAK 文件来定义工程 项目文件 文本格式 DSW VC 开发环境生成的 WorkSpace 文件 用来把多个工程组织到一个 WorkSpace 中 工作区文件 与 dsp 差不多 EXP 由 LIB 工具从 DEF 文件生成的输出文件 其中包含了函数和数据项目的输出 信息 LINK 工具将使用 EXP 文件来创建动态链接库 只有在编译 DLL 时才会生成 记录 了 DLL 文件中的一些信息 H HPP 或 HXX 用 C C 语言编写的头文件 通常用来定义数据类型 声明变量 函数 结构和类 HLP Windows 帮助文件 HM 在 Help 工程中 该文件定义了帮助文件与对话框 菜单或其它资源之间 ID 值 的对应关系 HPJ 由 Help Workshop 生成的 Help 工程文件 用来控制 Help 文件的生成过程 HPG 生成帮助的文件的工程 ICO 图标资源文件 ILK 连接过程中生成的一种中间文件 只供 LINK 工具使用 INI 配置文件 LIB 库文件 LINK 工具将使用它来连接各种输入库 以便最终生成 EXE 文件 LIC 用户许可证书文件 使用某些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论