专栏首页灰小猿技术社区如何跟客户解释为什么程序会有附带文件,最全标准回答来了!(建议收藏!)

如何跟客户解释为什么程序会有附带文件,最全标准回答来了!(建议收藏!)

很多刚开始做程序开发的小伙伴可能都会发现,在新建C语言和C++的工程时,都会在生成的程序文件夹中出现很多类似于.dsp .dsw .ncb .opt .plg的附加文件。

很多小伙伴在刚开始学习的时候都对于这些文件不是很了解,甚至当成程序文件来打开使用,结果呢?可想而知…bug bug bug。

前两天大灰狼在和朋友交流C#的时候,朋友就有疑问如此多的文件中,真正的幕后主程序在哪个文件。

同样在今天大灰狼给一个客户开发功能交付代码时,客户就提出了这样的问题:“为什么会有附带文件,给我解释解释!”

What?好吧,我承认没有只交付.C文件是我的错,让你对程序开发产生了这么大的误区…在这里我深刻的反思自己掉落的几根头发。

那么今天大灰狼就来带着大家的众多神疑问来统一答复一下,在创建C/C++工程时所产生的.dsp .dsw .ncb .opt .plg的附加文件其实是开发环境自动生成的。

敲重点!!!这些文件并不是我们为了给广大上帝朋友添加程序负担而故意添加的。

那么这些类似于.dsp .dsw .ncb .opt .plg的附加文件有什么作用呢?

在这大灰狼来分析解释一下:

.dsp (DeveloperStudio Project):项目文件,文本格式,不过不熟悉的话不要手工修改(bug警告)!

在VC中,应用程序是以Project的形式存在的,Project文件的扩展名为.dsp,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理,每个工程都对应一个dsp文件。

项目文件名后缀为dsp(保存项目设置),它维护应用程序中所有的源代码文件,以及Visual C++如何编译、连接应用程序,以便创建可执行程序。简单来说就是给你的程序文件运行搭桥牵线的。

.dsw(DeveloperStudio Workspace)

这种类型的文件在VC中是级别最高的,称为Workspace文件 ,Visual C++6的集成开发环境中,通过"File"菜单的"New"命令创建一个新的项目。

创建一个项目的同时,也创建了一个项目工作区,项目工作区文件的后缀名为dsw(保存项目工作区的设置)。一个应用程序可以有一个项目及若干个子项目,但只有一个活动的项目。功能和.dsp文件差不多。

.ncb 无编译浏览文件(no compile browser)。属于二进制文件,当自动完成功能出问题时可以删除此文件。建立后会自动生成。其实就是分析器信息文件。

.opt 工程关于开发环境的参数文件。如工具条位置等信息,与dsw类型的Workspace文件像配合的一个重要的文件类型,这个文件中包含的是Workspace文件中要用大本地计算机的有关配置信息。

所以这个文件不能在不同的计算机上共享。当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动的创建一个与之配合的包含本地计算机信息的opt文件。

.plg 是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大.在Tools->Options里面有个选项可以控制这个文件的生成。

在创建工程时的附加文件很多,但每个程序都会附带的就是以上五种,同时根据程序的不同需要,我们也会添加很多不同的文件,基本的功能如下:

.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资源定义文件中。

.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:用户许可证书文件,使用某些ActiveX控件时需要该文件。

.MAK:即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程,VC6把MAK文件转换成DSP文件来处理。

.MAP:由LINK工具生成的一种文本文件,其中包含有被连接的程序的某些信息,例如程序中的组信息和公共符号信息等。执行文件的映像信息记录文件。

.MDP:旧版本的项目文件,相当于.dsp

.NCB:NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成。无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。

.OBJ:由编译器或汇编工具生成的目标文件,是模块的二进制中间文件。

.ODL:用对象描述语言编写的源代码文件,VC用它来生成TLB文件。

.OLB:带有类型库资源的一种特殊的动态链接库,也叫对象库文件。

.OPT:VC开发环境自动生成的用来存放WorkSpace中各种选项的文件。工程关于开发环境的参数文件。如工具条位置信息等。

.PBI、.PBO和.PBT:由VC的性能分析工具PROFILE生成并使用的三种文件。

**.PCH:**预编译头文件,比较大,由编译器在建立工程时自动生成,其中存放有工程中已经编译的部分代码,在以后建立工程时不再重新编译这些代码,以便加快整个编译过程的速度。

.PDB:程序数据库文件,在建立工程时自动生成,其中存放程序的各种信息,用来加快调试过程的速度。记录了程序有关的一些数据和调试信息。

.PLG:编译信息文件,编译时的error和warning信息文件。

.RC:资源定义文件。

.RC2:资源定义文件,供一些特殊情况下使用。

.REG:注册表信息文件。

.RES:二进制资源文件,资源编译器编译资源定义文件后即生成RES文件。

.RTF:Rich Text Format(丰富文本格式)文档,可由Word或写字板来创建,常被用来生成Help文件。

.SBR:VC编译器为每个OBJ文件生成的原始浏览信息文件,浏览信息维护工具(BSCMAKE)将利用SBR文件来生成BSC文件。

.TLB:OLE库文件,其中存放了OLE自动化对象的数据类型、模块和接口定义,自动化服务器通过TLB文件就能了解自动化对象的使用方法。

.WAV:声音资源文件。

虽然附加文件很多,但是在程序开发时没有一个文件是无用的。

它就像我们人的每一个器官一样,或多或少,每一部分都有它独有的作用和功能。

我们在程序书写时最主要的是记住程序源文件的位置和后缀就可以了。

觉得有用记得关注分享,大灰狼陪你一起进步!

同时也可以关注我的微信公众号“灰狼洞主”获取更多好玩的程序代码和互联网资讯。期待您的光临!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 值得白嫖的数据库常用操作语句汇总(数据库、数据表、数据操作)

    最近在进行SQL server数据库的相关学习,所以对该数据库的一些常用的操作语句进行了些总结。在这里和小伙伴们一起分享一下。先从最基本的数据库的操作语句开始。

    灰小猿
  • Python源文件打包成可执行的exe应用,给你的代码变个身!

    我们平常所写的程序一般都是在编译环境下运行的,然而这对于那些没有开发环境或者对程序一无所知的小白就很不友好了,

    灰小猿
  • 超详细的Linux常用命令锦集,推荐收藏!!!【持续更新】

    最近在进行Linux系统的相关学习的时候,发现Linux系统上有很多常用的命令,所以在网上找了很多大佬的总结,然后简单的搜集汇总了一下。有不足和补充的地方还望各...

    灰小猿
  • [每天五分钟,备战架构师-5]操作系统之文件管理

    操作系统实现了对系统硬件资源和软件资源的管理,其中软件资源主要是各种系统程序、用户应用程序,还包括大量的文档材料,这些软件资源在操作系统中大多以文件的形式存储。...

    大江小浪
  • 《linux c编程指南》学习手记4

    7.1 文件系统简介 7.1.1 文件 文件类型:普通文件、目录文件、链接文件、设备文件、管道文件 文件权限:r w x 访问权限:文件所有者、文件所有者同组用...

    用户1154259
  • Tesseract:训练

    http://www.zmonster.me/2015/05/05/tesseract-training.html

    bear_fish
  • 任意文件移动导致的Windows提权攻击分析

    本文介绍了如何滥用Windows上特权进程执行文件操作来实现本地特权升级(用户到管理员/系统),同时介绍了利用这些类型的错误的现有技术以及漏洞利用工具。

    FB客服
  • python文件打开的几种访问模式

    于小勇
  • 【C语言基础】fopen函数使用

    r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表text r 打开只读文件,该文件必须存在 r+ 打开可读可写的文件,该文件...

    程序员互动联盟
  • 收集3:所有文件格式

    A 对象代码库文件 AAM Authorware shocked文件 AAS Authorware shocked包 ABF Adobe二进制屏幕字体 ...

    py3study

扫码关注云+社区

领取腾讯云代金券