VCCLCompilerTool 接口

VCCLCompilerTool 对象公开 C++ 编译器选项的功能。有关编译器选项的更多信息,请参见编译器选项

命名空间:  Microsoft.VisualStudio.VCProjectEngine
程序集:  Microsoft.VisualStudio.VCProjectEngine(在 Microsoft.VisualStudio.VCProjectEngine.dll 中)

语法

声明
<GuidAttribute("5D579FF0-3839-4B36-9F3E-4BA2F790525A")> _
Public Interface VCCLCompilerTool
[GuidAttribute("5D579FF0-3839-4B36-9F3E-4BA2F790525A")]
public interface VCCLCompilerTool
[GuidAttribute(L"5D579FF0-3839-4B36-9F3E-4BA2F790525A")]
public interface class VCCLCompilerTool
[<GuidAttribute("5D579FF0-3839-4B36-9F3E-4BA2F790525A")>]
type VCCLCompilerTool =  interface end
public interface VCCLCompilerTool

VCCLCompilerTool 类型公开以下成员。

属性

  名称 说明
公共属性 AdditionalIncludeDirectories 获取或设置要添加到包含路径的一个或多个目录。AdditionalIncludeDirectories 公开编译器的 /I(附加包含目录) 选项、 MIDL 编译器的 MIDL 属性页:常规 选项以及资源编译器的 “资源”属性页 选项的功能。
公共属性 AdditionalOptions 获取或设置要添加到命令行末尾、紧靠文件名前面的选项。例如,对象模型不支持某一选项时。
公共属性 AdditionalUsingDirectories 获取或设置目录搜索解决文件引用传递给 #using指令(C++) 指令。AdditionalUsingDirectories 公开编译器的 /AI(指定元数据目录) 选项的功能。
公共属性 AssemblerListingLocation 获取或设置相对路径和/或名称 ASM 列表文件的。AssemblerListingLocation 公开编译器的 /Fa 选项的功能。
公共属性 AssemblerOutput 获取或设置汇编语言输出文件的内容。AssemblerOutput 公开编译器的 /FA、/Fa(列出文件) 选项的功能。
公共属性 BasicRuntimeChecks 获取或设置一个值,该值指示是否执行完整运行时错误检查 /RTC(运行时错误检查))、是否在运行时检查堆栈帧有效性 (/RTC(运行时错误检查)),以及是否在运行时检查未初始化的变量 (/RTC(运行时错误检查))。
公共属性 BrowseInformation 指定级别在 .bsc 文件中浏览信息。BrowseInformation 公开编译器的 /FR、/Fr(创建 .Sbr 文件) 选项的功能。
公共属性 BrowseInformationFile 获取或设置浏览器信息文件的可选名称。BrowseInformationFile 公开编译器的 /FR、/Fr(创建 .Sbr 文件) 选项的功能。
公共属性 BufferSecurityCheck 获取或设置一个值指示是否检查缓冲区溢出。BufferSecurityCheck 公开编译器的 /GS(缓冲区安全检查) 选项的功能。
公共属性 CallingConvention 获取或设置调用应用程序的默认调用约定。CallingConvention 公开编译器的 /Gd、/Gr、/Gz(调用约定) 选项的功能。
公共属性 CompileAs 为 .c 和 .cpp 文件的编译语言选项。CompileAs 公开编译器的 /Tc、/Tp、/TC、/TP(指定源文件类型) 选项的功能。
公共属性 CompileAsManaged 获取或设置一个值,该值指示是否启用编译器选项。
公共属性 CompileOnly 获取或设置一个值,该值指示是否编译但不链接。
公共属性 DebugInformationFormat 获取或设置编译器生成的调试信息的类型。DebugInformationFormat 公开编译器的 /Z7、/Zi、/ZI(调试信息格式) 选项的功能。
公共属性 DefaultCharIsUnsigned 获取或设置默认 char 类型未签名。DefaultCharIsUnsigned 公开编译器的 /J(默认 char 类型是无符号的) 选项的功能。
公共属性 Detect64BitPortabilityProblems 获取或设置指示该值将检查 64 位可移植性问题。Detect64BitPortabilityProblems 公开编译器的 /Wp64(检测 64 位可迁移性问题) 选项的功能。
公共属性 DisableLanguageExtensions 获取或设置一个值指示禁止语言扩展。DisableLanguageExtensions 公开编译器的 /Za、/Ze(禁用语言扩展) 选项的功能。
公共属性 DisableSpecificWarnings 获取或设置禁用所需的警告编号的值;在以分号分隔将数字列表。DisableSpecificWarnings 公开编译器的 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won(警告等级) 选项的功能。
公共属性 EnableEnhancedInstructionSet 获取或设置一个在处理器上找到的使用命令支持增强指令集,例如 IA-32 的 SSE 和 SSE2 增强值。EnableEnhancedInstructionSet 公开编译器的 /ARCH 选项的功能。
公共属性 EnableFiberSafeOptimizations 获取或设置启用内存空间优化,当使用纤程和线程本地存储区访问时的值。EnableFiberSafeOptimizations 公开编译器的 /GT(支持纤程安全的线程本地存储区) 选项的功能。
公共属性 EnableFunctionLevelLinking 获取或设置启用函数级链接的值。EnableFunctionLevelLinking 公开编译器的 /Gy(启用函数级链接) 选项的功能。
公共属性 EnableIntrinsicFunctions 获取或设置一个值指示使用内部函数更快,但是,可能生成较大,代码。EnableIntrinsicFunctions 公开编译器的 /Oi(生成内部函数) 选项的功能。
公共属性 EnablePREfast 获取或设置是否启用本机代码分析。
公共属性 ErrorReporting 获取或设置编译器错误报告。
公共属性 ExceptionHandling 获取或设置一个值用于调用自动对象的析构函数在堆栈展开过程中导致引发的异常。ExceptionHandling 公开编译器的 /EH(异常处理模型) 选项的功能。
公共属性 ExecutionBucket 基础结构。仅由 Microsoft 内部使用。
公共属性 ExpandAttributedSource 获取或设置一个值指示将展开的特性创建列表文件插入到源文件中。ExpandAttributedSource 公开编译器的 /Fx(合并插入的代码) 选项的功能。
公共属性 FavorSizeOrSpeed 获取或设置一个值指示支持代码大小或代码速度。FavorSizeOrSpeed 公开编译器的 /Os、/Ot(代码大小优先、代码速度优先) 选项的功能。
公共属性 FloatingPointExceptions 设置或获取是否启用用户定义的浮点异常处理。
公共属性 floatingPointModel 设置或获取浮点模型。
公共属性 ForceConformanceInForLoopScope 获取或设置一个值指示强制编译器符合在 for 循环中的局部范围。ForceConformanceInForLoopScope 公开编译器的 /Zc:forScope(强制 for 循环范围中的一致性) 选项的功能。
公共属性 ForcedIncludeFiles 获取或设置指定了一个或多个强制的包含文件的值。ForcedIncludeFiles 公开编译器的 /FI(命名强制包含文件) 选项的功能。
公共属性 ForcedUsingFiles 强制使用文件名,就象它已被传递 #using指令(C++) 指令。ForcedUsingFiles 公开编译器的 /FU(命名强制 #using 文件) 选项的功能。
公共属性 FullIncludePath 获取生成中包含的所有目录的列表;一个由用 /I 指定的目录和 VC++ Directories 对话框中指定的目录组成的串联。并会对这些目录中的宏执行计算。
公共属性 GeneratePreprocessedFile 获取或设置此配置的预处理选项。GeneratePreprocessedFile 公开编译器的 /EP(不使用 #line 指令预处理到 stdout)/P(预处理到文件) 选项的功能。
公共属性 GenerateXMLDocumentationFiles 设置或获取是否生成 XML 文档文件。
公共属性 IgnoreStandardIncludePath 获取或设置指示是否忽略标准包含路径的值。IgnoreStandardIncludePath 公开编译器的 /X(忽略标准包含路径) 选项、 MIDL 编译器的 MIDL 属性页:常规 选项以及资源编译器的 “资源”属性页 选项的功能。
公共属性 InlineFunctionExpansion 获取或设置生成的内联函数展开的级别。InlineFunctionExpansion 公开编译器的 /Ob(内联函数展开) 选项的功能。
公共属性 KeepComments 获取或设置一个值来指示是否从源代码。KeepComments 公开编译器的 /C(在预处理期间保留注释) 选项的功能。
公共属性 MinimalRebuild 是否获取或设置一个值检测到 C++ 类定义的更改并重新编译受影响的源文件。MinimalRebuild 公开编译器的 /Gm(启用最小重新生成) 选项的功能。
公共属性 ObjectFile 获取或设置名称重写默认对象文件名称。ObjectFile 公开编译器的 /Fo(对象文件名) 选项的功能。
公共属性 OmitDefaultLibName 获取或设置是否忽略默认库名称。
公共属性 OmitFramePointers 获取或设置一个值指示是否禁用框架。OmitFramePointers 公开编译器的 /Oy(框架指针省略) 选项的功能。
公共属性 OpenMP 获取或设置是否启用 OpenMP。
公共属性 Optimization 获取或设置代码优化的选项。Optimization 公开编译器的 /Od(禁用(调试))/O1、/O2(最小化大小、最大化速度)/Ox(完全优化) 选项的功能。
公共属性 PrecompiledHeaderFile 获取或设置生成的预编译头文件的路径和名称。PrecompiledHeaderFile 公开编译器的 /Fp(命名 .Pch 文件) 选项的功能。
公共属性 PrecompiledHeaderThrough ,在创建或使用预编译头文件时,获取或设置标头名称。PrecompiledHeaderThrough 公开编译器的 /Yc(创建预编译的头文件)的功能和 /Yu(使用预编译的头文件) 选项。
公共属性 PreprocessorDefinitions 获取或设置一个或多个预处理器定义。PreprocessorDefinitions 公开编译器的 /D(预处理器定义) 选项、 MIDL 编译器的 MIDL 属性页:常规 选项以及资源编译器的 “资源”属性页 选项的功能。
公共属性 ProgramDataBaseFileName 获取或设置一个名称编译器生成的 .pdb 文件和基名称所需的编译器生成的 .idb 文件。ProgramDataBaseFileName 公开编译器的 /Fd(程序数据库文件名) 选项的功能。
公共属性 RuntimeLibrary 获取或设置链接的运行库。RuntimeLibrary 公开编译器的 /MD、/MT、/LD(使用运行库) 选项的功能。
公共属性 RuntimeTypeInfo 获取或设置一个值指示 add 检查 C++ 对象类型代码在运行时 (运行时类型信息)。RuntimeTypeInfo 公开编译器的 /GR(启用运行时类型信息) 选项的功能。
公共属性 ShowIncludes 获取或设置一个值指示生成列出了附带编译器输出的文件。ShowIncludes 公开编译器的 /showIncludes(列出包含文件) 选项的功能。
公共属性 SmallerTypeCheck 获取或设置一个值指示检查启用向较小类型的转换。SmallerTypeCheck 公开编译器的 /RTC(运行时错误检查) 选项的功能。
公共属性 StringPooling 获取或设置一个值指示是否启用只读的字符串池以生成较小的编译代码。StringPooling 公开编译器的 /GF(消除重复的字符串) 选项的功能。
公共属性 StructMemberAlignment 为结构成员对齐指定 1, 2, 4, 8 或 16 字节边界。StructMemberAlignment 公开 C++ 编译器的 /Zp(结构成员对齐) 选项和 MIDL 编译器的 MIDL 属性页:高级 选项的功能。
公共属性 SuppressStartupBanner 取消启动版权标志和信息的消息显示。
公共属性 ToolKind 获取工具的类型名称。
公共属性 toolName 获取指定工具的名称。
公共属性 ToolPath 获取指定工具的路径。
公共属性 TreatWChar_tAsBuiltInType 获取或设置一个值指示将 wchar_t 视为内置类型。TreatWChar_tAsBuiltInType 公开编译器的 /Zc:wchar_t(wchar_t 是本机类型) 选项的功能。
公共属性 UndefineAllPreprocessorDefinitions 获取或设置一个值指示未定义所有之前定义的预处理器值。UndefineAllPreprocessorDefinitions 公开编译器的 /U、/u(未定义符号) 选项的功能。
公共属性 UndefinePreprocessorDefinitions 获取或设置指定一个或多个预处理器取消定义的值。UndefinePreprocessorDefinitions 公开 C++ 编译器的 /U、/u(未定义符号) 选项和 MIDL 编译器的 MIDL 属性页:高级 选项的功能。
公共属性 UseFullPaths 获取或设置是否使用完整路径。
公共属性 UsePrecompiledHeader 获取或设置在生成过程中,启用对一个创建或使用预编译头的值。UsePrecompiledHeader 公开编译器的 /Yc(创建预编译的头文件)/Yu(使用预编译的头文件) 选项的功能。
公共属性 UseUnicodeResponseFiles 指定编译器是否使用 Unicode 响应文件。
公共属性 VCProjectEngine 获取一个指向项目引擎的指针。
公共属性 WarnAsError 获取或设置一个值指示使编译器将所有警告视为错误。WarnAsError 公开 C++ 编译器的 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won(警告等级) 选项和 MIDL 编译器的 MIDL 属性页:常规 选项的功能。
公共属性 WarningLevel 获取或设置表示的值值表示编译器检查潜在可疑构造的严格程度。WarningLevel 公开 C++ 编译器的 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won(警告等级) 选项和 MIDL 编译器的 /w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won(警告等级) 选项的功能。
公共属性 WholeProgramOptimization 获取或设置一个值,该值指示是否通过迟延链接时间代码生成来启用跨模块优化。WholeProgramOptimization 公开编译器的 /GL(全程序优化) 选项的功能。
公共属性 XMLDocumentationFileName 获取或设置 XML 文档的文件名。

页首

方法

  名称 说明
公共方法 get_PropertyOption 基础结构。仅由 Microsoft 内部使用。

页首

备注

以下新编译器选项在 Visual Studio 2005已添加:

下列编译器选项在 Visual Studio 2005已取消:

  • /Op

  • /G6、 /G7 和 /GB

示例

下面的示例演示如何使用 EnablePREfastAdditionalOptions 属性设置 /analyze:WX- 开关。(需要两个属性。) 指定 /analyze:WX- 意味着代码分析警告不被视为错误,则编译 /WX时。有关更多信息,请参见 /analyze(代码分析)

如何:编译和运行自动化对象模型代码示例所述,若要运行此示例中,输入并运行此示例。然后,在 Visual Studio新实例,加载一个 Visual C++ 项目并使用外接程序管理器激活外接程序。

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

请参见

参考

Microsoft.VisualStudio.VCProjectEngine 命名空间

其他资源

Walkthrough: Using /clr:pure Features