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)

[GuidAttribute("3D6193F2-8B5D-4B0A-967F-7D163D918848")]
public interface VCCLCompilerTool

NameDescription
System_CAPS_pubpropertyAdditionalIncludeDirectories

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.

System_CAPS_pubpropertyAdditionalOptions

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.

System_CAPS_pubpropertyAdditionalUsingDirectories

Gets or sets a directory to search to resolve file references passed to the #using Directive (C++) directive. AdditionalUsingDirectories exposes the functionality of the compiler's /AI (Specify Metadata Directories) option.

System_CAPS_pubpropertyAssemblerListingLocation

Gets or sets the relative path and/or name for an ASM listing file. AssemblerListingLocation exposes the functionality of the compiler's option.

System_CAPS_pubpropertyAssemblerOutput

Gets or sets the contents of assembly language output file. AssemblerOutput exposes the functionality of the compiler's /FA, /Fa (Listing File) options.

System_CAPS_pubpropertyBasicRuntimeChecks

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)).

System_CAPS_pubpropertyBrowseInformation

Specifies the level of in the .bsc file. BrowseInformation exposes the functionality of the compiler's /FR, /Fr (Create .Sbr File) options.

System_CAPS_pubpropertyBrowseInformationFile

Gets or sets the optional name for browser information file. BrowseInformationFile exposes the functionality of the compiler's /FR, /Fr (Create .Sbr File) options.

System_CAPS_pubpropertyBufferSecurityCheck

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.

System_CAPS_pubpropertyCallingConvention

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.

System_CAPS_pubpropertyCompileAs

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.

System_CAPS_pubpropertyCompileAsManaged

Gets or sets a value indicating compiler options.

System_CAPS_pubpropertyCompileOnly

Gets or sets a value indicating whether to compile without linking.

System_CAPS_pubpropertyDebugInformationFormat

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.

System_CAPS_pubpropertyDefaultCharIsUnsigned

Gets or sets the default char type to unsigned. DefaultCharIsUnsigned exposes the functionality of the compiler's /J (Default char Type Is unsigned) option.

System_CAPS_pubpropertyDetect64BitPortabilityProblems

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.

System_CAPS_pubpropertyDisableLanguageExtensions

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.

System_CAPS_pubpropertyDisableSpecificWarnings

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.

System_CAPS_pubpropertyEnableEnhancedInstructionSet

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.

System_CAPS_pubpropertyEnableFiberSafeOptimizations

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.

System_CAPS_pubpropertyEnableFunctionLevelLinking

Gets or sets a value that enables function-level linking. EnableFunctionLevelLinking exposes the functionality of the compiler's /Gy (Enable Function-Level Linking) option.

System_CAPS_pubpropertyEnableIntrinsicFunctions

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.

System_CAPS_pubpropertyEnablePREfast

Gets or sets whether Native Code Analysis is enabled.

System_CAPS_pubpropertyErrorReporting

Gets or sets compiler error reporting.

System_CAPS_pubpropertyExceptionHandling

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.

System_CAPS_pubpropertyExecutionBucket

This API supports the product infrastructure and is not intended to be used directly from your code. Microsoft Internal Use Only.

System_CAPS_pubpropertyExpandAttributedSource

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.

System_CAPS_pubpropertyFavorSizeOrSpeed

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.

System_CAPS_pubpropertyFloatingPointExceptions

Sets or gets whether user defined floating point exception handling is enabled.

System_CAPS_pubpropertyfloatingPointModel

Sets or gets the floating point model.

System_CAPS_pubpropertyForceConformanceInForLoopScope

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.

System_CAPS_pubpropertyForcedIncludeFiles

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.

System_CAPS_pubpropertyForcedUsingFiles

Forces the use of a file name as if it had been passed to the #using Directive (C++) directive. ForcedUsingFiles exposes the functionality of the compiler's /FU (Name Forced #using File) option.

System_CAPS_pubpropertyFullIncludePath

Gets a list of all directories included in the build; a concatenation of directories specified with /I and the directories specified in the dialog box. Macros present in these directories will be evaluated as well.E027448B-C811-4C3D-8531-4325AD3F6E02

System_CAPS_pubpropertyGeneratePreprocessedFile

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.

System_CAPS_pubpropertyGenerateXMLDocumentationFiles

Sets or gets whether to generate XML documentation files.

System_CAPS_pubpropertyIgnoreStandardIncludePath

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.

System_CAPS_pubpropertyInlineFunctionExpansion

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.

System_CAPS_pubpropertyKeepComments

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.

System_CAPS_pubpropertyMinimalRebuild

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.

System_CAPS_pubpropertyObjectFile

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.

System_CAPS_pubpropertyOmitDefaultLibName

Gets or sets whether the default library name is omitted.

System_CAPS_pubpropertyOmitFramePointers

Gets or sets a value indicating whether to suppress framepointers. OmitFramePointers exposes the functionality of the compiler's /Oy (Frame-Pointer Omission) option.

System_CAPS_pubpropertyOpenMP

Gets or set whether OpenMP is enabled.

System_CAPS_pubpropertyOptimization

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.

System_CAPS_pubpropertyPrecompiledHeaderFile

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.

System_CAPS_pubpropertyPrecompiledHeaderThrough

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.

System_CAPS_pubpropertyPreprocessorDefinitions

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.

System_CAPS_pubpropertyProgramDataBaseFileName

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.

System_CAPS_pubpropertyRuntimeLibrary

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.

System_CAPS_pubpropertyRuntimeTypeInfo

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.

System_CAPS_pubpropertyShowIncludes

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.

System_CAPS_pubpropertySmallerTypeCheck

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.

System_CAPS_pubpropertyStringPooling

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.

System_CAPS_pubpropertyStructMemberAlignment

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.

System_CAPS_pubpropertySuppressStartupBanner

Suppresses the display of the startup banner and information messages.

System_CAPS_pubpropertyToolKind

Gets the name of the kind of tool.

System_CAPS_pubpropertytoolName

Gets the name of the specified tool.

System_CAPS_pubpropertyToolPath

Gets the path to the specified tool.

System_CAPS_pubpropertyTreatWChar_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.

System_CAPS_pubpropertyUndefineAllPreprocessorDefinitions

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.

System_CAPS_pubpropertyUndefinePreprocessorDefinitions

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.

System_CAPS_pubpropertyUseFullPaths

Gets or sets whether to use full paths.

System_CAPS_pubpropertyUsePrecompiledHeader

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.

System_CAPS_pubpropertyUseUnicodeResponseFiles

Designates whether the complier uses Unicode response files, or not.

System_CAPS_pubpropertyVCProjectEngine

Gets a pointer to the project engine.

System_CAPS_pubpropertyWarnAsError

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.

System_CAPS_pubpropertyWarningLevel

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.

System_CAPS_pubpropertyWholeProgramOptimization

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.

System_CAPS_pubpropertyXMLDocumentationFileName

Gets or sets the XML documentation file name.

NameDescription
System_CAPS_pubmethodget_PropertyOption(String, Int32)

This API supports the product infrastructure and is not intended to be used directly from your code. Microsoft Internal Use Only.

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 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);
    }
}
Return to top
Show: