File Types Created for Visual C++ Projects
This topic describes all the types of files that are associated with Visual C++ projects. The actual files included in your project depend on the project type and the options you select when using a wizard.
- Project Files and Makefiles
- Files Created for Managed Extensions for C++ (.NET) Projects
- ATL Program or Control Source and Header Files
- MFC Program or Control Source and Header Files
- Precompiled Header Files
- Resource Files
- Help Files (WinHelp)
- Miscellaneous Project Files
When you create a Visual C++ project, you might be creating a new solution, or you might be adding a project to a solution. Non-trivial applications are commonly developed with multiple projects in a solution.
Projects usually produce either an EXE or a DLL. Projects can be dependent on each other; during the build process, the Visual C++ environment checks dependencies both within and between projects. Each project has core source code, and depending on the kind of project, it may have many other files containing various aspects of the project. The contents of these files are indicated by the file extension. The Visual Studio development environment uses the file extensions to determine how to handle the file contents during a build.
The following table shows common files in a Visual C++ project, and identifies them with their file extension. Throughout this section, Projname represents the name of the project.
|.asp||Source||Active Server Page file.|
|.atp||Project||Application template project file.|
|.bmp, .dib, .gif, .jpg, .jpe, .png||Resource||General image files.|
|.bsc||Compiling||The browser code file.|
|.cpp; .c||Source||Main source code files for your application.|
|.cur||Resource||Cursor bitmap graphic file.|
|.dbp||Project||Database project file.|
|.disco||Source||The dynamic discovery document file. Handles XML Web service discovery.|
|.exe, .dll||Project||Executable or dynamic-link library files.|
|.h||Source||The header, or include, file.|
|.htm, .html, .xsp, .asp, .htc, .hta, .xml||Resource||Common Web files.|
|.HxC||Project||Help project file.|
|.ico||Resource||Icon bitmap graphic file.|
|.idb||Compiling||The state file, containing dependency information between source files and class definitions, which can be used by the compiler during minimal rebuild and incremental compilation. Use the /Fd compiler option to specify the name of the .idb file. See /Gm (Enable Minimal Rebuild) for more information.|
|.idl||Compiling||The interface definition language file. See Interface Definition (IDL) File in the Platform SDK for more information.|
|.ilk||Linking||Incremental link file. See /INCREMENTAL for more information.|
|.map||Linking||A text file containing linker information. Use the /Fm compiler option to name the map file. See /MAP for more information.|
|.ncb||Solution||The no compile browser file.|
|.obj, .o||Object files, compiled but not linked.|
|.pch||Debug||Precompiled header file.|
|.pdb||Debug||The program debug database file. See What Are .pdb Files? for more information.|
|.rc, .rc2||Resource||Resource script files to generate resources.|
|.sbr||Compiling||Source browser intermediate file. The input file for BSCMAKE.|
|.sln||Solution||The solution file.|
|.suo||Solution||The solution options file.|
|.srf||Project||The server response file. This file contains the HTML code for an ATL Server application.|
|.txt||Resource||Text file, usually the "readme" file.|
|.vap||Project||Visual Studio Analyzer Project file.|
|.vbg||Solution||Compatible project group file.|
|.vbp, .vip, .vbproj||Project||The Visual Basic project file.|
|.vcproj||Project||The Visual C++ project file. See Project Files and Makefiles for more information.|
|.vdproj||Project||The Visual Studio deployment project file.|
|.vmx||Project||The macro project file.|
|.vup||Project||The utility project file.|
Other files associated with Visual Studio are described in File Types and File Extensions in Visual Studio .NET.
Project files are organized into folders in Solution Explorer. Visual C++ creates a folder for source files, header files, and resource files, but you can reorganize these folders or create new ones. You can use folders to organize explicitly logical clusters of files within the hierarchy of a project. For example, you could create folders to contain all your user interface source files, or specifications, documentation, or test suites. All file folder names should be unique.
When you add an item to a project, you add the item to all configurations for that project, regardless of whether or not the item is buildable. For example, if you have a project named MyProject, adding an item adds it to both the Debug and Release project configurations.