共用方式為


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 取得或設定一個或多個要加入至 include 路徑的目錄。AdditionalIncludeDirectories 會公開編譯器 /I (其他 Include 目錄) 選項、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、/Gv、/Gz (呼叫慣例) 選項的功能。
公用屬性 CompileAs 選取 .c 和 .cpp 檔的編譯語言選項。CompileAs 會公開編譯器之 /Tc、/Tp、/TC、/TP (指定原始程式檔類型) 選項的功能。
公用屬性 CompileAsManaged 取得或設定值,這個值表示編譯器選項。
公用屬性 CompileOnly 取得或設定值,這個值表示是否進行編譯而不連結。
公用屬性 DebugInformationFormat 取得或設定編譯器所產生的偵錯資訊類型。DebugInformationFormat 會公開編譯器之 /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 取得或設定值,該值會在使用 Fiber 和執行緒區域儲存區存取時,啟用記憶體空間最佳化。EnableFiberSafeOptimizations 會公開編譯器之 /GT (支援 Fiber-Safe 執行緒區域儲存區) 選項的功能。
公用屬性 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 取得或設定值,指定一個或多個強制的 Include 檔案。ForcedIncludeFiles 會公開編譯器之 /FI (命名強制的包含檔) 選項的功能。
公用屬性 ForcedUsingFiles 強制使用檔案名稱,如同該名稱已傳遞至 #using 指示詞 (C++) 指示詞一樣。ForcedUsingFiles 會公開編譯器之 /FU (命名強制的 #using 檔案) 選項的功能。
公用屬性 FullIncludePath 取得建置中包含之所有目錄的清單、以 /I 指定的目錄串連,以及在 VC++ Directories對話方塊中指定的目錄。也會評估這些目錄中存在的巨集。
公用屬性 GeneratePreprocessedFile 取得或設定這個組態的前置處理選項。GeneratePreprocessedFile 會公開編譯器之 /EP (前置處理至 stdout 不加 #line 指示詞)/P (前置處理至檔案) 選項的功能。
公用屬性 GenerateXMLDocumentationFiles 設定或取得是否要產生 XML 文件檔案。
公用屬性 IgnoreStandardIncludePath 取得或設定值,指出是否忽略標準 include 路徑。IgnoreStandardIncludePath 會公開編譯器之 /X (忽略標準 Include 路徑) 選項、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 取得或設定值,指出是否要以編譯器輸出產生 Include 檔案的清單。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 (程式碼分析)

如何:編譯和執行 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