VCCLCompilerTool 接口

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

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

语法

声明
<GuidAttribute("3D6193F2-8B5D-4B0A-967F-7D163D918848")> _
Public Interface VCCLCompilerTool
[GuidAttribute("3D6193F2-8B5D-4B0A-967F-7D163D918848")]
public interface VCCLCompilerTool
[GuidAttribute(L"3D6193F2-8B5D-4B0A-967F-7D163D918848")]
public interface class VCCLCompilerTool
[<GuidAttribute("3D6193F2-8B5D-4B0A-967F-7D163D918848")>]
type VCCLCompilerTool =  interface end
public interface VCCLCompilerTool

VCCLCompilerTool 类型公开以下成员。

属性

  名称 说明
公共属性 AdditionalIncludeDirectories 获取或设置要添加到包含路径的一个或多个目录。AdditionalIncludeDirectories 公开编译器的功能 /I(附加包含目录) 选项,MIDL 编译器的 MIDL 属性页:常规 选项,和 Resource 编译器的 “资源”属性页 选项。
公共属性 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、/Gv、/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 获取或设置一个值,该值允许使用在支持增强指令集的处理器上找到的如 SSE 和增强到 IA-32 的 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) and /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 获取或设置指示是否添加在运行时检查 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(创建预编译的头文件) and /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