共用方式為


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 取得或設定一個或多個要加入至 include 路徑的目錄。AdditionalIncludeDirectories公開 (expose) 的編譯器功能/I (其他 Include 目錄)選項,MIDL 編譯器的MIDL 屬性頁:一般選項,而資源編譯器的資源屬性頁選項。
公用屬性 AdditionalOptions 取得或設定要加入至緊鄰檔案名稱前面之命令列結尾的選項。例如,物件模型不支援某個選項的情況。
公用屬性 AdditionalUsingDirectories 取得或設定要搜尋,以解析傳遞至的檔案參考目錄# using 指示詞 (C++)指示詞。AdditionalUsingDirectories 會公開編譯器之 /AI (指定中繼資料目錄) 選項的功能。
公用屬性 AssemblerListingLocation 取得或設定相對的路徑和 (或) ASM 清單檔的名稱。AssemblerListingLocation公開 (expose) 的編譯器功能 /Fa 選項。
公用屬性 AssemblerOutput 取得或設定組件語言輸出檔的內容。AssemblerOutput公開 (expose) 的編譯器功能/FA、/Fa (清單檔)選項。
公用屬性 BasicRuntimeChecks 取得或設定值,這個值表示是否執行完整的執行階段錯誤檢查 /RTC (執行階段錯誤檢查))、在執行階段檢查堆疊框架有效性 (/RTC (執行階段錯誤檢查)),以及在執行階段檢查是否有未初始化的變數 (/RTC (執行階段錯誤檢查))。
公用屬性 BrowseInformation .Bsc 檔中指定瀏覽資訊的等級。BrowseInformation公開 (expose) 的編譯器功能/FR、/Fr (建立 .Sbr 檔案)選項。
公用屬性 BrowseInformationFile 取得或設定瀏覽器資訊檔的選擇性名稱。BrowseInformationFile公開 (expose) 的編譯器功能/FR、/Fr (建立 .Sbr 檔案)選項。
公用屬性 BufferSecurityCheck 取得或設定值,指出是否要檢查的緩衝區滿溢。BufferSecurityCheck 會公開編譯器之 /GS (緩衝區安全性檢查) 選項的功能。
公用屬性 CallingConvention 取得或設定預設的應用程式的呼叫慣例。CallingConvention公開 (expose) 的編譯器功能/Gd、/Gr、/Gz (呼叫慣例)選項。
公用屬性 CompileAs 選取編譯.c 和.cpp 檔的編譯語言選項。CompileAs公開 (expose) 的編譯器功能/Tc、/Tp、/TC、/TP (指定原始程式檔類型)選項。
公用屬性 CompileAsManaged 取得或設定值,這個值表示編譯器選項。
公用屬性 CompileOnly 取得或設定值,這個值表示是否進行編譯而不連結。
公用屬性 DebugInformationFormat 取得或設定編譯器所產生的偵錯資訊的型別。DebugInformationFormat公開 (expose) 的編譯器功能/Z7、/Zi、/ZI (偵錯資訊格式)選項。
公用屬性 DefaultCharIsUnsigned 取得或設定預設的 char 型別不帶正負號。DefaultCharIsUnsigned 會公開編譯器之 /J (預設 char 型別為 unsigned) 選項的功能。
公用屬性 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 (支援 Fiber-Safe 執行緒區域儲存區) 選項的功能。
公用屬性 EnableFunctionLevelLinking 取得或設定值,這個值,可讓函式階層連結。EnableFunctionLevelLinking 會公開編譯器之 /Gy (啟用函式階層連結) 選項的功能。
公用屬性 EnableIntrinsicFunctions 取得或設定值,指出是否要使用內建函式來產生更快、 但可能更大的程式碼。EnableIntrinsicFunctions 會公開編譯器之 /Oi (產生內建函式) 選項的功能。
公用屬性 EnablePREfast 取得或設定是否啟用機器碼分析。
公用屬性 ErrorReporting 取得或設定編譯器錯誤報告。
公用屬性 ExceptionHandling 取得或設定值,這個值用於呼叫自動物件的解構函式擲回的例外狀況所造成的堆疊解開期間。ExceptionHandling 會公開編譯器之 /EH (例外狀況處理模型) 選項的功能。
公用屬性 ExecutionBucket 基礎架構。僅限 Microsoft 內部使用。
公用屬性 ExpandAttributedSource 取得或設定值,指出是否使用嵌入展開屬性至原始程式檔中建立清單檔。ExpandAttributedSource 會公開編譯器之 /Fx (合併插入的程式碼) 選項的功能。
公用屬性 FavorSizeOrSpeed 取得或設定值,指出是否要優先程式碼大小或程式碼的速度。FavorSizeOrSpeed公開 (expose) 的編譯器功能/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公開 (expose) 的編譯器功能/EP (前置處理至 stdout 不加 #line 指示詞)/P (前置處理至檔案)選項。
公用屬性 GenerateXMLDocumentationFiles 設定或取得是否要產生 XML 文件檔案。
公用屬性 IgnoreStandardIncludePath 取得或設定值,指出是否忽略標準包含路徑。IgnoreStandardIncludePath公開 (expose) 的編譯器功能/X (忽略標準 Include 路徑)選項,MIDL 編譯器的MIDL 屬性頁:一般選項,而資源編譯器的資源屬性頁選項。
公用屬性 InlineFunctionExpansion 取得或設定組建的內嵌函式展開的層級。InlineFunctionExpansion公開 (expose) 的編譯器功能/Ob (內嵌函式展開)選項。
公用屬性 KeepComments 取得或設定值,指出是否要隱藏的註解原始程式碼。KeepComments 會公開編譯器之 /C (前置處理時保留註解) 選項的功能。
公用屬性 MinimalRebuild 取得或設定值,表示是否要偵測 C++ 類別定義的變更,然後重新編譯受影響的原始程式檔。MinimalRebuild 會公開編譯器之 /Gm (啟用最少重建) 選項的功能。
公用屬性 ObjectFile 取得或設定要覆寫預設物件的檔名的名稱。ObjectFile 會公開編譯器之 /Fo (目的檔名稱) 選項的功能。
公用屬性 OmitDefaultLibName 取得或設定是否省略預設程式庫名稱。
公用屬性 OmitFramePointers 取得或設定值,指出是否隱藏 framepointers。OmitFramePointers 會公開編譯器之 /Oy (框架指標省略) 選項的功能。
公用屬性 OpenMP 取得或設定是否啟用 OpenMP。
公用屬性 Optimization 取得或設定程式碼最佳化的選項。Optimization公開 (expose) 的編譯器功能/Od (停用 (偵錯))/O1、/O2 (最小大小、最快速度),以及/Ox (完全最佳化)選項。
公用屬性 PrecompiledHeaderFile 取得或設定路徑和 (或) 產生的先行編譯標頭檔的名稱。PrecompiledHeaderFile 會公開編譯器之 /Fp (命名 .Pch 檔案) 選項的功能。
公用屬性 PrecompiledHeaderThrough 取得或設定標頭檔名稱,用於建立或使用先行編譯標頭檔。PrecompiledHeaderThrough公開 (expose) 的編譯器功能/Yc (建立先行編譯標頭檔),以及/Yu (使用先行編譯標頭檔)選項。
公用屬性 PreprocessorDefinitions 取得或設定一個或多個前置處理器定義。PreprocessorDefinitions公開 (expose) 的編譯器功能/D (前置處理器定義)選項,MIDL 編譯器的MIDL 屬性頁:一般選項,而資源編譯器的資源屬性頁選項。
公用屬性 ProgramDataBaseFileName 取得或設定編譯器產生.pdb 檔案的名稱和必要的編譯器產生.idb 檔的主檔名。ProgramDataBaseFileName 會公開編譯器之 /Fd (程式資料庫檔名) 選項的功能。
公用屬性 RuntimeLibrary 取得或設定的執行階段程式庫連結。RuntimeLibrary公開 (expose) 的編譯器功能/MD、/MT、/LD (使用執行階段程式庫)選項。
公用屬性 RuntimeTypeInfo 取得或設定值,指出是否要加入程式碼,來檢查執行時期 (run-time 型別資訊) 的 C++ 物件型別。RuntimeTypeInfo 會公開編譯器之 /GR (啟用執行階段型別資訊) 選項的功能。
公用屬性 ShowIncludes 取得或設定值,指出是否要產生一份包含檔和編譯器的輸出。ShowIncludes 會公開編譯器之 /showIncludes (列示包含檔) 選項的功能。
公用屬性 SmallerTypeCheck 取得或設定值,指出是否啟用檢查以轉換成較小的型別。SmallerTypeCheck 會公開編譯器之 /RTC (執行階段錯誤檢查) 選項的功能。
公用屬性 StringPooling 取得或設定值,指出是否啟用唯讀字串共用,產生較小的大小編譯的程式碼。StringPooling 會公開編譯器之 /GF (消除重複字串) 選項的功能。
公用屬性 StructMemberAlignment 指定 1、 2-、 4-、 8 或結構成員對齊 16 位元組界限。StructMemberAlignment公開 (expose) 功能的 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公開 (expose) 功能的 C++ 編譯器的/U、/u (取消定義符號)選項並且 MIDL 編譯器的MIDL 屬性頁:進階選項。
公用屬性 UseFullPaths 取得或設定是否要使用完整路徑。
公用屬性 UsePrecompiledHeader 取得或設定值,在建置期間,以便建立或使用先行編譯標頭。UsePrecompiledHeader公開 (expose) 的編譯器功能/Yc (建立先行編譯標頭檔)/Yu (使用先行編譯標頭檔)選項。
公用屬性 UseUnicodeResponseFiles 指定編譯器是否使用 Unicode 回應檔。
公用屬性 VCProjectEngine 取得專案引擎的指標。
公用屬性 WarnAsError 取得或設定值,指出是否啟用編譯器,將所有警告視為錯誤。WarnAsError公開 (expose) 功能的 C++ 編譯器的/w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won (警告層級)選項並且 MIDL 編譯器的MIDL 屬性頁:一般選項。
公用屬性 WarningLevel 取得或設定值,這個值表示編譯器會檢查可能發生結構的嚴格。WarningLevel公開 (expose) 功能的 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,/GB /G7,

範例

下列範例會示範如何使用EnablePREfastAdditionalOptions屬性來設定/analyze:WX-切換。 (若要這麼做被必要這兩個屬性)。 指定/analyze:WX-程式碼分析警告的方法不會被視為錯誤以編譯時/WX。 如需詳細資訊,請參閱 /analyze (程式碼分析)

若要執行這個範例後,再輸入執行這個範例中所述HOW TO:編譯和執行 Automation 物件模型程式碼範例。 然後,在新的執行個體的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