visual studio里的几个输出的设置及一些文件的作用

首先是 OutPut Directory ,它的值不会直接影响到你文件的输出,但它会间接的影响其他输出,比方说默认值中包含有$(OutDir).

Intermediate Directory ,中间目录,生成的obj文件,预编译头,预编译相关的idb及pdb,buildlog都会在这里.

idb 是系统生的成的状态信息,可以加速随后的编译

pdb 包含调试信息

Linker->General->OutPut File,输出文件,虽然填的是exe的路径,但.ilk文件会按这个路径输出.

Linker->Debugging->Genrerate Program Database File,输出的pdb文件

Linker->Advanced->Import Library 指示了将随同dll生成的lib文件输出的文件名和路径

DSW:全称是Developer   Studio   Workspace,最高级别的配置文件,记录了整个工作空间的配置信息,她是一个纯文本的文件,在vc创建新项目的时候自动生成   
DSP:全称是Developer   Studio   Project,也是一个配置文件,不过她记录的是一个项目的所有配置信息,纯文本文件   
OPT:与DSW、DSP配合使用的配置文件,她记录了与机器硬件有关的信息,同一个项目在不同的机器上的opt文件内容是不同的   
CLW:记录了跟ClassWizard相关的信息,如果丢失了clw文件,那么在Class   View面板里就没有类信息   
PLG:实际上是一个超文本文件,可以用Internet   Explorer打开,记录了Build的过程,是一个日志型文件   
RC:资源描述文件,记录了所有的资源信息,在资源编辑器里作的修改,实际上都是对RC文件的修改   
RC2:附加的资源描述文件,不能直接资源编辑器修改,只能手工添加,可以用来添加额外的资源   
RES:经过资源编辑器编译之后的资源文件,以二进制方式存放   
SBR:编译器生成的浏览信息文件,在代码导航的时候非常有用,她需要在编译时指定/FR或者/Fr开关   
BSC:BSCMAKE.EXE将所有的SBR文件作为输入,经过处理之后输出一个BSC文件,在代码导航的时候实际用到的是BSC文件   
ILK:当选定渐增型编译连接时,连接器自动生成ILK文件,记录连接信息   
PDB:全称是Program   DataBase,即程序数据库文件,用来记录调试信息,是一个相当重要的文件,没有他,程序无法正常调试   
LIB:如果项目输出是Dll的话,一般会输出一个跟项目同名的Lib文件,记录输出的函数信息   
EXP:同Lib,是跟Dll一起生成的输出文件   
PCH:全称是PreCompiled   Header,就是预先编译好的头文件,在编译时指定/Yu开关时编译器自动生成

关于,ilk文件及渐增式编译连接

:       VS2005编译时出现这样的错误:
: Compiling...
: Image.cpp
: Linking...
: LINK : warning LNK4076: invalid incremental status file "Debug/code.ilk";
:             linking nonincrementally
: code.exe - 0 error(s), 1 warning(s)

原因:

VC编译时可以选择incremental linking(渐增式编译),也就是每次重新编译并不编译
所有的源文件,只编译改动过的文件。而编译器怎么知道哪些编译过哪些每编译过呢,
除了检查修改时间外,这个ilk文件也是很重要的信息。
如果你因为误操作或者VC自己的BUG引起了ilk文件的损坏,下一次编译时当然无法根据
ilk进行incremental linking了。但是在这种情况下也没什么大问题,VC自己会解决的,
所以也只出了一个警告。

解决办法:

把Dubug目录下.ilk文件强行删掉再重新编译一次就行了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Visual Studio 是一个集成开发环境(IDE),它提供了许多工具和功能来方便我们进行软件开发。在 Visual Studio 中,读取文件可以使用多种方式,其中常见的方式包括: 1. 使用标准 C++ 文件输入输出流:使用 `ifstream` 对象读取文件,例如: ``` #include <fstream> #include <string> int main() { std::ifstream infile("filename.txt"); std::string line; while (std::getline(infile, line)) { // 处理每一行内容 } return 0; } ``` 2. 使用 Windows API 函数:使用 `CreateFile()` 函数创建文件句柄,然后使用 `ReadFile()` 函数读取文件内容,例如: ``` #include <windows.h> int main() { HANDLE hFile = CreateFile( L"filename.txt", GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr); if (hFile == INVALID_HANDLE_VALUE) { // 处理错误 } DWORD dwFileSize = GetFileSize(hFile, nullptr); char* pBuffer = new char[dwFileSize]; DWORD dwBytesRead; if (!ReadFile(hFile, pBuffer, dwFileSize, &dwBytesRead, nullptr) || dwBytesRead != dwFileSize) { // 处理错误 } // 处理 pBuffer 中的文件内容 delete[] pBuffer; CloseHandle(hFile); return 0; } ``` 3. 使用 MFC CFile 类:使用 `CFile` 类读取文件内容,例如: ``` #include <afx.h> int main() { CFile file; if (!file.Open(_T("filename.txt"), CFile::modeRead)) { // 处理错误 } DWORD dwFileSize = file.GetLength(); char* pBuffer = new char[dwFileSize]; file.Read(pBuffer, dwFileSize); // 处理 pBuffer 中的文件内容 delete[] pBuffer; file.Close(); return 0; } ``` 以上是 Visual Studio 中读取文件的几种方式,根据实际需要选择适合自己的方式即可。如果有更多问题,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值