[1] .APS:(AppStudio File)存放二进制资源的资源辅助中间文件(可加快资源装载速度)。

[2] .BMP:(bitmap)位图资源文件。 

[3] .BSC:浏览信息文件。由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。可在project options里去掉Generate Browse Info File,这样可加快编译进度。 

[4] .C:用C语言编写的源代码文件。 

[5] .CLW:ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassWizard的时候绘提示你是否重建. ClassWizard生成的存放类信息的文件。

[6] .CNT:用来定义帮助文件中“Contents”的结构。

[7] .CPP或.CXX:用C++语言编写的源代码文件。

[8] .CUR:(cursor)光标资源文件。 

[9] .DEF:(definition)模块定义文件,供生成动态链接库使用。 
[10] .DLG:(dialog)定义对话框资源的独立文件。对于VC工程非必需,因VC一般把对话框资源放在.RC文件中。

[11] .DSP:(DeveloperStudio Project)项目文件,文本格式,不过不熟悉的话不要手工修改.VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。

[12] .DSW:(DeveloperStudio Workspace)是工作区文件,其他特点和DSP差不多. VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中,与.dsp相似。

[13] .EXP:(export)由LIB工具从DEF文件生成的输出文件,其中包含了函数和数据项目的输出信息,LINK工具将使用EXP文件来创建动态链接库。只有在编译DLL时才会生成,记录了DLL文件中的一些信息。

[14] .H、.HPP或.HXX:用C/C++语言编写的头文件,通常用来定义数据类型,声明变量、函数、结构和类。

[15] .HLP:(help)Windows帮助文件。 

[16] .HM:在Help工程中,该文件定义了帮助文件与对话框、菜单或其它资源之间ID值的对应关系。 
[17] .HPJ: (Help Project)是生成帮助 文件 的工程,用microsfot  Help Compiler可以处理. 由Help Workshop生成的Help工程文件,用来控制Help文件的生成过程。

[18] .HPG:生成帮助的文件的工程。

[19] .ICO:(icon)图标资源文件。 

[20] .ILK:(link)连接过程中生成的一种中间文件,只供LINK工具使用。 

[21] .INI:配置文件。 

[22] .LIB:库文件,LINK工具将使用它来连接各种输入库,以便最终生成EXE文件。

[23] .LIC:用户许可证书文件,使用某些ActiveX控件时需要该文件。 

[24] .MAK:即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程。

[25] .MAP:由LINK工具生成的文本文件,包含被连接程序的某些信息,执行文

件的映像信息记录文件。

[26] .MDP:(Microsoft DevStudio Project)是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的DSP格式. 旧版本的项目文件,相当于.dsp。 

[27] .NCB: 无编译浏览 文件 (no compile browser)。当自动完成功能出问题时可以删除此 文件 。build后会自动生成。NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,编译工程后会自动生成。当自动完成功能出问题时可删除此文件。 

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

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

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

[31] .OPT:VC开发环境自动生成的存放WorkSpace中各种选项的文件。工程关于开发环境的参数文件。 

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

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

[34] .PDB:(Program Database File)程序数据库文件,在建立工程时自动生成,其中存放程序的各种信息,用来加快调试过程的速度。记录了程序有关的一些数据和调试信息。 *.pdb *.idb 都是调试用的数据库,可以删除

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

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

[37] .REG:注册表信息文件。.RES:二进制资源文件,资源编译器编译资源定义文件后即生成RES文件。 

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

[39] .SBR:VC编译器为每个OBJ文件生成的原始浏览信息文件。 

[40] .TLB:OLE库文件,其中存放了OLE自动化对象的数据类型、模块和接口定义。

补充:

[1].IDB: *.idb 都是调试用的数据库,可以删除。

[2].ipch:文件是Visual Studio用来保存预编译的头文件Intellisense用的,删除这些文件对于工程的开发完全没有影响。

[3].sdf:文件是Visual Studio用来保存预编译的头文件Intellisense用的,删除这些文件对于工程的开发完全没有影响。

注:在使用Visual Studio 2010开发C++程序的时候,会发现有一些奇怪的文件被创建出来,比如一个叫ipch的文件夹,和一个与工程同名的.sdf文件,而且ipch下面的文件和.sdf文件都很大,至少有10M,大项目可能超过100M,那这些文件是干什么用的呢?这些文件是Visual Studio用来保存预编译的头文件Intellisense用的,删除这些文件对于工程的开发完全没有影响。那如果我既想使用预编译的头文件和Intellisense,又不想看到这些无聊的文件该怎么办呢?
在Visual Studio里进入如下设置:进入“Tools > Options”,选择“Text Editor > C/C++ > Advanced”,然后找到“Fallback Location”。然后把“Always use Fallback Location”和“Do Not Warn if Fallback Location”设置成“True”就可以了,如果想把这些文件保存到特定的文件夹,就要设置一下Fallback Location,否则Visual Studio会用系统的临时文件夹来保存这些文件。然后重启Visual Studio,那些讨厌的文件就不见了。这个设置对于像我这样使用Dropbox来同步代码的人来说尤其有用。

在c++中,下面的红方格里的符号是什么意思呢?


绿色方块表示是成员变量,红色方块表示成员函数。
前面带钥匙表示是私有(private)的变量或函数,带锁的表示保护类型(protected)的变量或函数
不带的表示公有(public)变量或函数。

CFile::Read()怎么用,MFC中。。。。

virtual UINT Read(
   void* lpBuf,
   UINT nCount 
);
这是Read函数的代码,我大体知道这个函数的功能
void* lpBuf,是把资源读入哪里
UINT nCount ,是读入的字节数
但是我不知道这个函数从那开始读。。。。。
就比如我有一个结构体,
怎么吧结构体的指针pstruct与Read函数关联起来。。。
CFile::Open成功打开文件后,使用 GetLength 获取文件的长度,nFileLen;
然后 new 一块内存。char*lpBuf = new char[nFileLen];
再使用 Read( lpBuf, nFileLen);
文件的数据就装入到 lpBuf指向的内存块了。
Read是从当前游标开始读取,默认是文件起始,可以使用 Seek/ SeekToBegin / SeekToEnd 来定位。
“怎么吧结构体的指针pstruct与Read函数关联起来”——你文件中如果存的是某种结构化数据(里面最好别包含指针变量)。可以直接使用 pstruct = (MYSTRUCT*) (lpBuf+x); 来强制转换,x表示偏移位置。
如果你的结构体里面包含指针对象(尤其是字符串成员),那么请使用序列号模式来存放结构数据,MFC提供的 CArchive 类,>> << 2个成员函数就能实现结构化数据的保存装入了,使用比较简单。主要是装入和保存时候要一一匹配别搞错就行。
具体看看MSDN吧,有不少例子。

2.  当用CFile.open打开一个文件后,下面的程序若在Close文件前调用了两次Read来读该文件,那么两次read读出的是同一数据吗?(若read中最大数据长度小于文件中数据长度)

不一样,读一次,位置指针偏移增加文件读取量
DWORD pos = CFile::GetPosition();
DWORD length = CFile::Read();
DWORD pos1 = CFile::GetPosition();
// 这时pos1 应该等于 pos+length;

http://bbs.csdn.net/topics/390341051  可以看看,相关内容。


cfile cfiledialog cstdiofile的区别

CFileDialog文件选择对话框 http://blog.csdn.net/demok2010/article/details/5957523

http://www.csdn123.com/html/itweb/20130916/121111_121113_121112.htm

CArchive类的使用:

CArchive 对象提供了一个类型安全缓冲机制,用于将可序列化对象写入 CFile 对象或从中读取可序列化对象。通常,CFile 对象表示磁盘文件;但是,它也可以是表示“剪贴板”的内存文件(CSharedFile 对象)。

http://blog.sina.com.cn/s/blog_4ae1ad2001000bqd.html

MFC中两个对话框类怎样互相访问修改对方的成员变量

http://zhidao.baidu.com/link?url=2oJCw9Lrb9mRF0OUcNFa8WXgWbjrNCQHdZkQS5nbbgJztCpZe2bEhwCgcWDgLuTxUxDkXDCO4Dzw4l5FEqQ0p_


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐