Projects usually produce an EXE or DLL.
Projects can depend on each other; During the build process, the Visual C + + environment checks for dependencies between each project and each project.
Each project has a core source code, and depending on the project type, it can have many other files that contain various aspects of the project, respectively.
The contents of these files are indicated by the file extension.
The Visual Studio development environment leverages the file name extension to determine how the file contents are handled during the build process.
File name extension type content
. asmx source deployment files.
The. asp source active Server Page file.
The. ATP Project Application template project file.
. bmp,. dib,. gif,. jpg,. jpe,. png Resources General image files.
The. BSC compiles the browser code file.
The main source code file for the. cpp,. C source application.
. cur resource cursor bitmap graphic file.
. DBP Project database project file.
. disco Source Dynamic discovery document file. Processes XML Web Services discovery.
. exe,. dll project executable file, or dynamic link library file.
. h source file or include file.
. htm,. html,. xsp,. asp,. HTC,. HTA,. XML resources public Web files.
. HxC Project help project files.
. ico resource icon bitmap graphic file.
The. IDB compilation state file that contains dependency information between source files and class definitions that can be used by the compiler during minimal rebuild and incremental compilation. Use the/FD editor option to specify the name of the. IDB file. For more information, see/GM (Enable minimal rebuild).
The. IDL compilation Interface Definition language file. For more information, see Interface definition (IDL) files in the platform SDK.
. ilk link Incremental link file. For more information, see/incremental.
The. Map link contains the text file of the linker information. Use the/FM compiler option to name the mapping file. For more information, see/MAP.
. NCB solution non-compiled browser file.
. obj,. o compiled but not linked object files.
. PCH Debug precompiled Header file.
. PDB Debugger Debug database file. For more information, see what is the. pdb file?
The resource script file for the. RC,. RC2 Resource generation resource.
. SBR compiles the source browser intermediate file. The input file for the BSCMAKE.
. sln solution solution file. You can organize your environments into solutions by providing them with references to the location of projects, project items, and solution items on disk.
The. Suo Solution solution user options file. Records all the options that will be associated with the solution so that each time it is opened, it contains the customizations that you have made.
. SRF Project Server response file. The file contains the HTML code for the ATL Server application.
. txt resource text file, usually a readme file.
. VAP Project Visual Studio Analyzer project file.
. VBG Solution-compatible project group files.
. vbp,. VIP,. vbproj project Visual Basic project files.
. vcproj Project Visual C + + project files. For more information, see Project files and build files.
The. Vdproj Project Visual Studio deployment project file.
. VMX Project macro project file.
The. Vup Project utility project file.
Project files and build files
File name Directory location Solution Explorer location description
Solname.sln Projname does not appear in Solution Explorer
The solution files that are used in the development environment. It organizes all the elements of one or more projects into a single solution. This file is stored in the parent project directory.
Projname.suo Projname does not appear in Solution Explorer
The solution options file that is used in the development environment. It stores all the user options created for the solution, so that each time you open the project's solution, it has the desired appearance and contains all the selected customizations. This file is stored in the parent project directory.
Projname.vcproj Projname does not appear in Solution Explorer
The project files that are used in the development environment. In previous releases, this file was called PROJNAME.DSP. It stores the project's private information. Each project has a separate. vcproj file. For more information, see "Formats for. vcproj files". This file is stored in the parent project directory.
Projname.idl Projname Source
A file that contains the interface Description Language source code for the type library. Visual C + + uses this file to generate a type library. The generated library exposes the interface of the control to other automation clients. For more information, see Interface definition (IDL) files in the platform SDK.
PROJNAME.NCB Projname does not appear in Solution Explorer
A non-compiled browser file. It contains information generated by the parser that is used by the Class View. If this file is accidentally or intentionally deleted, it will be regenerated automatically.
Readme.txt Projname Project
A file that describes each file in the project, which is described using the file name actually created by the application Wizard. is in the parent directory of the project.
Files created for the CLR project
FileName File Description
AssemblyInfo.cpp This file contains information that modifies the assembly metadata for an item, that is, properties, files, resources, types, version information, signature information, and so on. For more information, see "Assembly Concepts" in the. NET Framework SDK.
Projname.asmx a text file that references a managed class that encapsulates the functionality of XML Web services.
Projname.cpp Visual Studio is the entry point for the main source files and applications you create for you. Identifies the. dll file and project namespace for the project. Provide your own code in this file.
Projname.vsdisco an XML deployment file that contains links to additional resources that describe XML WEB services.
The main include file for the Projname.h project, which contains all declarations, global symbols, and #include directives for other header files.
PROJNAME.NCB no compiled browser files, containing information generated by the parser and used by class views.
Projname.sln a solution file that is used in the development environment to organize all elements of a project into a single solution.
Projname.suo the solution options file that is used in the development environment.
Projname.vcproj a project file that is used to store specific information about the project within the development environment.
The ReadMe.txt description file, which uses the actual file name created by the template to describe each file in the project.
Source and header files for ATL programs or controls
The Active Template Library (ATL) is a set of template-based C + + classes that enable you to create small, fast Component Object Model (COM) objects. It has special support for major COM features, including common implementations, dual interfaces, standard COM enumerator interfaces, connection points, separate interfaces, and ActiveX controls.
The following files are created when you create an ATL project in Visual Studio, based on the options that you select for the project you created.
All of these files are located in the Projname directory and are located in the header file (. h file) folder in Solution Explorer or in the source files (. cpp files) folder.
The project contains Projnameisapi.vcproj, ProjnameIsapi.h, ProjnameIsapi.cpp, and projname.srf files only when you create an ATL Server project.
File name Description
The Projname.h master contains a file that contains the C + + interface definition and GUID declarations for the items defined in Atlsample.idl. Regenerated by MIDL during compilation.
Projname.cpp the main program source files. It contains the DLL export implementation of the in-process server and the WinMain implementation of the local server. For services, it also implements all service management functions.
ProjnameIsapi.cpp contains the ISAPI extension code and the root ISAPI extension file that attaches the ATL Server code. You can customize your ATL Server code to suit your project's specific needs.
Projnameisapi.vcproj the main project file for a Visual C + + project that is generated by using the Application Wizard. It contains the Visual C + + version of the generated file and information about the platform, configuration, and project features selected with the Application Wizard.
Projnameisapi.def contains functions that will be exported from an ISAPI extension DLL, including ISAPI extension functions HttpExtensionProc, getextensionversion, and TerminateExtension. These functions are delegated to an instance of the CIsapiExtension class.
Resource.h the header file of the resource file.
StdAfx.cpp contains StdAfx.h and Atlimpl.cpp files
StdAfx.h contains the ATL header file.
PROJNAME.SRF server response file. Contains the HTML code for the ATL Server application.
Source and header files for MFC programs or controls
All of these files are located in the Projname directory and are located in the header file (. h file) folder in Solution Explorer or in the source files (. cpp files) folder.
File name Description
Projname.h The main include file for the program or DLL. It contains all the global symbols and #include directives for other header files. It exports the CPrjnameApp class from CWinApp and declares the InitInstance member function. For controls, the CPrjnameApp class is exported from COleControlModule.
Projname.cpp the main program source files. It creates an object from the CPrjnameApp class exported from CWinApp and overrides the InitInstance member function. For executable files, Cprjnameapp::initinstance completes several things. It registers the document template for use as a connection between the document and the window, creates the main frame window, and creates an empty document (if a document is specified as a command-line argument for the application). For DLLs and ActiveX (formerly OLE) controls, Cprojnameapp::initinstance registers the control's object factory with OLE by calling Coleobjectfactory::registerall, and then calls the AfxOleInit. In addition, the Cprojnameapp::exitinstance member function is used to unload a control from memory through a afxoleterm call. This file also registers and unregisters controls in the Windows registration database by implementing the DllRegisterServer and DllUnregisterServer functions.
Projnamectrl.h, Projnamectrl.cpp declares and implements the CProjnameCtrl class. Export CProjnameCtrl from COleControl and define skeleton implementations of member functions that initialize, describe, and serialize (load and save) controls. Messages, events, and dispatch mappings are also defined.
Projnamedlg.cpp, Projnamedlg.h is created when you select a dialog-based application. This file exports and implements a dialog class named Cprojnamedlg, and contains a skeleton member function that initializes the dialog box and executes the dialog data Exchange (DDX). The About dialog class is also placed in these files, not in Projname.cpp.
Dlgproxy.cpp, Dlgproxy.h the implementation of the project automation proxy class and the header file of the main dialog box in a dialog-based program. Use it only if automation support is selected.
Projnamedoc.cpp, Projnamedoc.h exports and implements a document class named CProjnameDoc, and contains skeleton member functions that initialize documents, serialize (load and save) documents, and implement debug diagnostics.
Projnameset.h/.cpp created when a program that supports a database and contains a recordset class is created.
Projnameview.cpp, Projnameview.h exports and implements a view class named CProjnameView, which is used to display and print document data. The CProjnameView class is exported from one of the following MFC classes:
CEditView
CFormView
CRecordView
COleDBRecordView
CTreeView
CListView
CRichEditView
CScrollView
CView
CHTMLView
CHtmlEditView
The project's view class contains skeleton member functions that describe the view and implement debug diagnostics. If print support is enabled, the message map entries for print, print settings, and print Preview command messages are also added. These items call the corresponding member functions in the base view class.
ProjnamePropPage.h, ProjnamePropPage.cpp Declaration and implementation Cprojnameproppage class. Export cprojnameproppage from COlePropertyPage and provide a skeleton member function DoDataExchange for data exchange and validation.
IPframe.cpp, IPframe.h in the Automation Options page of the Application Wizard (step three in six steps), create them if you select the Mini Server (Mini-server) or the full server (full-server) option. These files export and implement an in-place frame window class named CInPlaceFrame, which is used when the container program activates the server in place.
Mainfrm.cpp, Mainfrm.h exports CMainFrame classes from CFrameWnd (for SDI applications) or CMDIFrameWnd (for MDI applications). If the appropriate option is selected in the Application Options page of the Application Wizard (step Fourth of six steps), the CMainFrame class handles the creation of the toolbar buttons and the status bar. For information on using CMainFrame, see the Framework window class created by the Application Wizard.
Childfrm.cpp, Childfrm.h export CChildFrame class from CMDIChildWnd. The CChildFrame class is used for MDI document frame windows. If the MDI option is selected, these files are always created.
File types in Visual C + +