VCCLCompilerTool Interface

Definition

The VCCLCompilerTool object exposes the functionality of the C++ compiler options. See Compiler Options for more information about compiler options.

[System.Runtime.InteropServices.Guid("80B63513-3E87-44A5-8E12-4BA7F981153E")]
[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDual | System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable)]
public interface VCCLCompilerTool
Attributes

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 (Code Analysis).

' 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);  
    }  
}  

Properties

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 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 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 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, /Gv, /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, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (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

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 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, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (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, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (Warning Level) option and the MIDL compiler's /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (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.

Applies to