VCCLCompilerTool Interface
The VCCLCompilerTool object exposes the functionality of the C++ compiler options. See Compiler Options for more information about compiler options.
Namespace: Microsoft.VisualStudio.VCProjectEngine
Assembly: Microsoft.VisualStudio.VCProjectEngine (in Microsoft.VisualStudio.VCProjectEngine.dll)
Syntax
'Declaration
<GuidAttribute("F6DEA060-B8B5-48BC-8986-AC2BB5E4788C")> _
Public Interface VCCLCompilerTool
[GuidAttribute("F6DEA060-B8B5-48BC-8986-AC2BB5E4788C")]
public interface VCCLCompilerTool
[GuidAttribute(L"F6DEA060-B8B5-48BC-8986-AC2BB5E4788C")]
public interface class VCCLCompilerTool
[<GuidAttribute("F6DEA060-B8B5-48BC-8986-AC2BB5E4788C")>]
type VCCLCompilerTool = interface end
public interface VCCLCompilerTool
The VCCLCompilerTool type exposes the following members.
Properties
Name | Description | |
---|---|---|
AdditionalIncludeDirectories | Gets or sets one or more directories to add to the include path. AdditionalIncludeDirectories exposes the functionality of the compiler's /I (Additional Include Directories) option, the MIDL compiler's MIDL Property Pages: General option, and the Resource Compiler's Resources Property Pages option. | |
AdditionalOptions | Gets or sets options to add to the end of the command line immediately before the file name(s). An example is if an option is not supported in the object model. | |
AdditionalUsingDirectories | Gets or sets a directory to search to resolve file references passed to the #using Directive (C/C++) directive. AdditionalUsingDirectories exposes the functionality of the compiler's /AI (Specify Metadata Directories) option. | |
AssemblerListingLocation | Gets or sets the relative path and/or name for an ASM listing file. AssemblerListingLocation exposes the functionality of the compiler's /Fa option. | |
AssemblerOutput | Gets or sets the contents of assembly language output file. AssemblerOutput exposes the functionality of the compiler's /FA, /Fa (Listing File) options. | |
BasicRuntimeChecks | Gets or sets a value to indicate whether to perform full run-time error checks /RTC (Run-Time Error Checks)), check stack frame validity at run time (/RTC (Run-Time Error Checks)), and check for uninitialized variables at run time (/RTC (Run-Time Error Checks)). | |
BrowseInformation | Specifies the level of browse information in the .bsc file. BrowseInformation exposes the functionality of the compiler's /FR, /Fr (Create .Sbr File) options. | |
BrowseInformationFile | Gets or sets the optional name for browser information file. BrowseInformationFile exposes the functionality of the compiler's /FR, /Fr (Create .Sbr File) options. | |
BufferSecurityCheck | Gets or sets a value indicating whether to check for buffer overruns. BufferSecurityCheck exposes the functionality of the compiler's /GS (Buffer Security Check) option. | |
CallingConvention | Gets or sets the default calling convention for your application. CallingConvention exposes the functionality of the compiler's /Gd, /Gr, /Gz (Calling Convention) options. | |
CompileAs | Selects compile language option for .c and .cpp files. CompileAs exposes the functionality of the compiler's /Tc, /Tp, /TC, /TP (Specify Source File Type) options. | |
CompileAsManaged | Gets or sets a value indicating compiler options. | |
CompileOnly | Gets or sets a value indicating whether to compile without linking. | |
DebugInformationFormat | Gets or sets the type of debugging information generated by the compiler. DebugInformationFormat exposes the functionality of the compiler's /Z7, /Zi, /ZI (Debug Information Format) options. | |
DefaultCharIsUnsigned | Gets or sets the default char type to unsigned. DefaultCharIsUnsigned exposes the functionality of the compiler's /J (Default char Type Is unsigned) option. | |
Detect64BitPortabilityProblems | Gets or sets a value indicating whether the compiler will check for 64-bit portability issues. Detect64BitPortabilityProblems exposes the functionality of the compiler's /Wp64 (Detect 64-Bit Portability Issues) option. | |
DisableLanguageExtensions | Gets or sets a value indicating whether to suppress language extensions. DisableLanguageExtensions exposes the functionality of the compiler's /Za, /Ze (Disable Language Extensions) option. | |
DisableSpecificWarnings | Gets or sets a value that disables the desired warning numbers; puts numbers in a semicolon delimited list. DisableSpecificWarnings exposes the functionality of the compiler's /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warning Level) option. | |
EnableEnhancedInstructionSet | Gets or sets a value that enables the use of instructions found on processors that support enhanced instruction sets, such as the SSE and SSE2 enhancements to the IA-32. EnableEnhancedInstructionSet exposes the functionality of the compiler's /ARCH option. | |
EnableFiberSafeOptimizations | Gets or sets a value that enables memory space optimization when using fibers and thread local storage access. EnableFiberSafeOptimizations exposes the functionality of the compiler's /GT (Support Fiber-Safe Thread-Local Storage) option. | |
EnableFunctionLevelLinking | Gets or sets a value that enables function-level linking. EnableFunctionLevelLinking exposes the functionality of the compiler's /Gy (Enable Function-Level Linking) option. | |
EnableIntrinsicFunctions | Gets or sets a value indicating whether to use intrinsic functions to generate faster, but possibly larger, code. EnableIntrinsicFunctions exposes the functionality of the compiler's /Oi (Generate Intrinsic Functions) option. | |
EnablePREfast | Gets or sets whether Native Code Analysis is enabled. | |
ErrorReporting | Gets or sets compiler error reporting. | |
ExceptionHandling | Gets or sets a value used for calls to destructors for automatic objects during a stack unwind caused by a thrown exception. ExceptionHandling exposes the functionality of the compiler's /EH (Exception Handling Model) option. | |
ExecutionBucket | Infrastructure. Microsoft Internal Use Only. | |
ExpandAttributedSource | Gets or sets a value indicating whether to create a listing file with expanded attributes injected into source file. ExpandAttributedSource exposes the functionality of the compiler's /Fx (Merge Injected Code) option. | |
FavorSizeOrSpeed | Gets or sets a value indicating whether to favor code size or code speed. FavorSizeOrSpeed exposes the functionality of the compiler's /Os, /Ot (Favor Small Code, Favor Fast Code) options. | |
FloatingPointExceptions | Sets or gets whether user defined floating point exception handling is enabled. | |
floatingPointModel | Sets or gets the floating point model. | |
ForceConformanceInForLoopScope | Gets or sets a value indicating whether to force the compiler to conform to the local scope in a For loop. ForceConformanceInForLoopScope exposes the functionality of the compiler's /Zc:forScope (Force Conformance in for Loop Scope) option. | |
ForcedIncludeFiles | Gets or sets a value that specifies one or more forced include files. ForcedIncludeFiles exposes the functionality of the compiler's /FI (Name Forced Include File) option. | |
ForcedUsingFiles | Forces the use of a file name as if it had been passed to the #using Directive (C/C++) directive. ForcedUsingFiles exposes the functionality of the compiler's /FU (Name Forced #using File) option. | |
FullIncludePath | Gets a list of all directories included in the build; a concatenation of directories specified with /I and the directories specified in the VC++ Directories dialog box. Macros present in these directories will be evaluated as well. | |
GeneratePreprocessedFile | Gets or set the preprocessing option for this configuration. GeneratePreprocessedFile exposes the functionality of the compiler's /EP (Preprocess to stdout Without #line Directives) and /P (Preprocess to a File) options. | |
GenerateXMLDocumentationFiles | Sets or gets whether to generate XML documentation files. | |
IgnoreStandardIncludePath | Gets or sets a value that indicates whether to ignore the standard include path. IgnoreStandardIncludePath exposes the functionality of the compiler's /X (Ignore Standard Include Paths) option, the MIDL compiler's MIDL Property Pages: General option, and the Resource Compiler's Resources Property Pages option. | |
InlineFunctionExpansion | Gets or sets the level of inline function expansion for the build. InlineFunctionExpansion exposes the functionality of the compiler's /Ob (Inline Function Expansion) options. | |
KeepComments | Gets or sets a value indicating whether to suppress a comment strip from source code. KeepComments exposes the functionality of the compiler's /C (Preserve Comments During Preprocessing) option. | |
MinimalRebuild | Gets or sets a value indicting whether to detect changes to C++ class definitions and recompile affected source files. MinimalRebuild exposes the functionality of the compiler's /Gm (Enable Minimal Rebuild) option. | |
ObjectFile | Gets or sets a name to override the default object file name. ObjectFile exposes the functionality of the compiler's /Fo (Object File Name) option. | |
OmitDefaultLibName | Gets or sets whether the default library name is omitted. | |
OmitFramePointers | Gets or sets a value indicating whether to suppress framepointers. OmitFramePointers exposes the functionality of the compiler's /Oy (Frame-Pointer Omission) option. | |
OpenMP | Gets or set whether OpenMP is enabled. | |
Optimization | Gets or sets options for code optimization. Optimization exposes the functionality of the compiler's /Od (Disable (Debug)), /O1, /O2 (Minimize Size, Maximize Speed), and /Ox (Full Optimization) options. | |
PrecompiledHeaderFile | Gets or sets the path and/or name of the generated precompiled header file. PrecompiledHeaderFile exposes the functionality of the compiler's /Fp (Name .Pch File) option. | |
PrecompiledHeaderThrough | Gets or sets the header file name to use when creating or using a precompiled header file. PrecompiledHeaderThrough exposes the functionality of the compiler's /Yc (Create Precompiled Header File), and /Yu (Use Precompiled Header File) options. | |
PreprocessorDefinitions | Gets or sets one or more preprocessor defines. PreprocessorDefinitions exposes the functionality of the compiler's /D (Preprocessor Definitions) option, the MIDL compiler's MIDL Property Pages: General option, and the Resource Compiler's Resources Property Pages option. | |
ProgramDataBaseFileName | Gets or sets a name for a compiler-generated .pdb file and a base name for the required compiler-generated .idb file. ProgramDataBaseFileName exposes the functionality of the compiler's /Fd (Program Database File Name) option. | |
RuntimeLibrary | Gets or sets the run-time library for linking. RuntimeLibrary exposes the functionality of the compiler's /MD, /MT, /LD (Use Run-Time Library) options. | |
RuntimeTypeInfo | Gets or sets a value indicating whether to add code for checking C++ object types at run time (run-time type information). RuntimeTypeInfo exposes the functionality of the compiler's /GR (Enable Run-Time Type Information) option. | |
ShowIncludes | Gets or sets a value indicating whether to generate a list of include files with compiler output. ShowIncludes exposes the functionality of the compiler's /showIncludes (List Include Files) option. | |
SmallerTypeCheck | Gets or sets a value indicating whether to enable checking for conversion to smaller types. SmallerTypeCheck exposes the functionality of the compiler's /RTC (Run-Time Error Checks) option. | |
StringPooling | Gets or sets a value indicating whether to enable read-only string pooling for generating smaller compiled code. StringPooling exposes the functionality of the compiler's /GF (Eliminate Duplicate Strings) option. | |
StructMemberAlignment | Specifies 1-, 2-, 4-, 8-, or 16-byte boundaries for struct member alignment. StructMemberAlignment exposes the functionality of the C++ compiler's /Zp (Struct Member Alignment) option and the MIDL compiler's MIDL Property Pages: Advanced option. | |
SuppressStartupBanner | Suppresses the display of the startup banner and information messages. | |
ToolKind | Gets the name of the kind of tool. | |
toolName | Gets the name of the specified tool. | |
ToolPath | Gets the path to the specified tool. | |
TreatWChar_tAsBuiltInType | Gets or sets a value indicating whether to treat wchar_t as a built-in type. TreatWChar_tAsBuiltInType exposes the functionality of the compiler's /Zc:wchar_t (wchar_t Is Native Type) option. | |
UndefineAllPreprocessorDefinitions | Gets or sets a value indicating whether to undefine all previously defined preprocessor values. UndefineAllPreprocessorDefinitions exposes the functionality of the compiler's /U, /u (Undefine Symbols) option. | |
UndefinePreprocessorDefinitions | Gets or sets a value that specifies one or more preprocessor undefines. UndefinePreprocessorDefinitions exposes the functionality of the C++ compiler's /U, /u (Undefine Symbols) option and the MIDL compiler's MIDL Property Pages: Advanced option. | |
UseFullPaths | Gets or sets whether to use full paths. | |
UsePrecompiledHeader | Gets or sets a value that enables the creation or use of a precompiled header during the build. UsePrecompiledHeader exposes the functionality of the compiler's /Yc (Create Precompiled Header File) and /Yu (Use Precompiled Header File) options. | |
UseUnicodeResponseFiles | Designates whether the complier uses Unicode response files, or not. | |
VCProjectEngine | Gets a pointer to the project engine. | |
WarnAsError | Gets or sets a value indicating whether to enable the compiler to treat all warnings as errors. WarnAsError exposes the functionality of the C++ compiler's /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warning Level) option and the MIDL compiler's MIDL Property Pages: General option. | |
WarningLevel | Gets or sets a value that represents how strictly the compiler checks for potentially suspect constructs. WarningLevel exposes the functionality of the C++ compiler's /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warning Level) option and the MIDL compiler's /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warning Level) option. | |
WholeProgramOptimization | Gets or sets a value indicating whether to enable cross-module optimizations by delaying code generation to link time. WholeProgramOptimization exposes the functionality of the compiler's /GL (Whole Program Optimization) option. | |
XMLDocumentationFileName | Gets or sets the XML documentation file name. |
Top
Methods
Name | Description | |
---|---|---|
get_PropertyOption | Infrastructure. Microsoft Internal Use Only. |
Top
Remarks
The following new compiler options were added in Visual Studio 2005:
The following compiler options were removed in Visual Studio 2005:
/Op
/G6, /G7, and /GB
Examples
The following example demonstrates how to use the EnablePREfast and AdditionalOptions properties to set the /analyze:WX- switch. (Both properties are required to do this.) Specifying /analyze:WX- means that code analysis warnings will not be treated as errors when compiling with /WX. For more information, see /analyze (Enterprise Code Analysis).
To run this example, enter and run this example as outlined in How to: Compile and Run the Automation Object Model Code Examples. Then, in the new instance of Visual Studio, load a Visual C++ project and use the Add-in Manager to activate the add-in.
' Add reference to Microsoft.VisualStudio.VCProjectEngine.
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualStudio.VCProjectEngine
Imports System.Text
Sub EnablePREfastExample(ByVal dte As DTE2)
Dim prj As VCProject
Dim cfgs, tools As IVCCollection
Dim cfg As VCConfiguration
Dim tool As VCCLCompilerTool
Dim sb As New StringBuilder
prj = CType(dte.Solution.Projects.Item(1).Object, _
Microsoft.VisualStudio.VCProjectEngine.VCProject)
cfgs = CType(prj.Configurations, _
Microsoft.VisualStudio.VCProjectEngine.IVCCollection)
cfg = CType(cfgs.Item(1), _
Microsoft.VisualStudio.VCProjectEngine.VCConfiguration)
tool = CType(cfg.Tools("VCCLCompilerTool"), _
Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool)
sb.Length = 0
sb.Append("Current project PREfast setting: " _
& tool.EnablePREfast & Environment.NewLine)
sb.Append("Flag: " & tool.AdditionalOptions)
MsgBox(sb.ToString)
' Toggle PREfast setting.
If Not (tool.EnablePREfast = True) Then
' PREfast is not enabled. Turn it and the WX- flag on.
tool.EnablePREfast = True
tool.AdditionalOptions = "/analyze:WX-"
Else
' Toggle the opposite.
tool.EnablePREfast = False
tool.AdditionalOptions = "/analyze:WX"
End If
sb.Length = 0
sb.Append("New project PREfast setting: " _
& tool.EnablePREfast & Environment.NewLine)
sb.Append("Flag: " & tool.AdditionalOptions)
MsgBox(sb.ToString)
End Sub
// Add references to Microsoft.VisualStudio.VCProjectEngine and
// System.Windows.Forms.
using System;
using Extensibility;
using EnvDTE;
using EnvDTE80;
using Microsoft.VisualStudio.VCProjectEngine;
using System.Text;
using System.Windows.Forms;
public void EnablePREfastExample(DTE2 dte)
{
try
{
VCProject prj;
IVCCollection cfgs, tools;
VCConfiguration cfg;
VCCLCompilerTool tool;
StringBuilder sb = new StringBuilder();
prj = (Microsoft.VisualStudio.VCProjectEngine.VCProject)
dte.Solution.Projects.Item(1).Object;
cfgs =
(Microsoft.VisualStudio.VCProjectEngine.IVCCollection)
prj.Configurations;
cfg =
(Microsoft.VisualStudio.VCProjectEngine.VCConfiguration)
cfgs.Item(1);
tools =
(Microsoft.VisualStudio.VCProjectEngine.IVCCollection)
cfg.Tools;
tool =
(Microsoft.VisualStudio.VCProjectEngine.VCCLCompilerTool)
tools.Item("VCCLCompilerTool");
sb.Length = 0;
sb.Append("Current project PREfast setting: " +
tool.EnablePREfast + Environment.NewLine);
sb.Append("Flag: " + tool.AdditionalOptions);
MessageBox.Show(sb.ToString());
// Toggle PREfast setting.
if (!(tool.EnablePREfast == true))
{
// PREfast is not enabled. Turn it and the WX- flag on.
tool.EnablePREfast = true;
tool.AdditionalOptions = "/analyze:WX-";
}
else
{
// Toggle the opposite.
tool.EnablePREfast = false;
tool.AdditionalOptions = "/analyze:WX";
}
sb.Length = 0;
sb.Append("New project PREfast setting: " +
tool.EnablePREfast + Environment.NewLine);
sb.Append("Flag: " + tool.AdditionalOptions);
MessageBox.Show(sb.ToString());
}
catch (System.Exception errmsg)
{
MessageBox.Show("ERROR! " + errmsg.Message);
}
}
See Also
Reference
Microsoft.VisualStudio.VCProjectEngine Namespace