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 インクルード パスに追加する 1 つ以上のディレクトリを取得または設定します。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 型の 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 (スレッド ローカル ストレージを使用したファイバー保護のサポート) オプションの機能を公開します。
パブリック プロパティ EnableFunctionLevelLinking 関数レベルのリンクを有効にすることを示す値を取得または設定します。EnableFunctionLevelLinking は、コンパイラの /Gy (関数レベルのリンクの有効化) オプションの機能を公開します。
パブリック プロパティ EnableIntrinsicFunctions 組み込み関数を使用するかどうかを示す値を取得または設定します。組込み関数でコードは迅速に生成できますが、サイズが大きくなることがあります。EnableIntrinsicFunctions は、コンパイラの /Oi (組み込み関数の生成) オプションの機能を公開します。
パブリック プロパティ EnablePREfast ネイティブ コード分析を有効にするかどうかを取得または設定します。
パブリック プロパティ ErrorReporting コンパイラのエラー レポートを取得または設定します。
パブリック プロパティ ExceptionHandling スローされた例外によって発生したスタックのアンワインドで、自動オブジェクトのデストラクターを呼び出すときに使用する値を取得または設定します。ExceptionHandling は、コンパイラの /EH (例外処理モデル) オプションの機能を公開します。
パブリック プロパティ ExecutionBucket インフラストラクチャ。マイクロソフト内部でのみ使用します。
パブリック プロパティ ExpandAttributedSource ソース ファイルに拡張された属性を挿入して、リスティング ファイルを作成するかどうかを示す値を取得または設定します。ExpandAttributedSource は、コンパイラの /Fx (挿入されたコードのマージ) オプションの機能を公開します。
パブリック プロパティ FavorSizeOrSpeed コード サイズとコード速度のどちらを優先するかを示す値を取得または設定します。FavorSizeOrSpeed は、コンパイラの /Os、/Ot (実行可能ファイルのサイズの優先、実行速度の優先) オプションの機能を公開します。
パブリック プロパティ FloatingPointExceptions ユーザー定義の浮動小数点の例外処理を有効にするかどうかを設定または取得します。
パブリック プロパティ floatingPointModel 浮動小数点モデルを設定または取得します。
パブリック プロパティ ForceConformanceInForLoopScope For ループで、強制的にコンパイラをローカル スコープに準拠させるかどうかを示す値を取得または設定します。ForceConformanceInForLoopScope は、コンパイラの /Zc:forScope (for ループのスコープの強制準拠) オプションの機能を公開します。
パブリック プロパティ ForcedIncludeFiles 1 つ以上の強制インクルード ファイルを指定する値を取得または設定します。ForcedIncludeFiles は、コンパイラの /FI (強制インクルード ファイルの名前の指定) オプションの機能を公開します。
パブリック プロパティ ForcedUsingFiles #using ディレクティブ (C++) ディレクティブに渡された場合と同じ方法でファイル名の使用を強制します。ForcedUsingFiles は、コンパイラの /FU (強制 #using ファイルの名前の指定) オプションの機能を公開します。
パブリック プロパティ FullIncludePath ビルドに含まれるすべてのディレクトリ、/l で指定されたディレクトリの連結、および [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 1 つ以上のプリプロセッサ定義を取得または設定します。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 1 つ以上のプリプロセッサを未定義に指定する値を取得または設定します。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 インフラストラクチャ。マイクロソフト内部でのみ使用します。

このページのトップへ

解説

次の新しいコンパイラ オプションが Visual Studio 2005 に追加されました。

次のコンパイラ オプションが Visual Studio 2005 で削除されました。

  • /Op

  • /G6、/G7、および /GB

EnablePREfast プロパティおよび AdditionalOptions プロパティを使用して /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