Freigeben über


VCCLCompilerTool-Schnittstelle

Das VCCLCompilerTool-Objekt macht die Funktionen der C++-Compileroptionen verfügbar. Weitere Informationen zu Compileroptionen finden Sie unter Compileroptionen.

Namespace:  Microsoft.VisualStudio.VCProjectEngine
Assembly:  Microsoft.VisualStudio.VCProjectEngine (in Microsoft.VisualStudio.VCProjectEngine.dll)

Syntax

'Declaration
<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

Der VCCLCompilerTool-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft AdditionalIncludeDirectories Ruft ein oder mehrere Verzeichnisse ab, die dem Includepfad hinzugefügt werden sollen, oder legt diese fest.AdditionalIncludeDirectories macht die Funktionen der /I (Zusätzliche Includeverzeichnisse)-Option des Compilers, der Eigenschaftenseiten "MIDL": "Allgemein"-Option des MIDL-Compilers und der Eigenschaftenseiten "Ressourcen"-Option des Ressourcencompilers verfügbar.
Öffentliche Eigenschaft AdditionalOptions Ruft die Optionen ab, die am Ende der Befehlszeile direkt vor den Dateinamen hinzugefügt werden sollen, oder legt diese fest.Ein Beispiel hierfür ist eine Option, die im Objektmodell nicht unterstützt wird.
Öffentliche Eigenschaft AdditionalUsingDirectories Ruft das zu durchsuchende Verzeichnis ab, um Dateiverweise aufzulösen, die an die #using-Direktive (C++)-Direktive übergeben wurden, oder legt es festAdditionalUsingDirectories macht die Funktionalität der Compileroption /AI (Metadatenverzeichnisse festlegen) verfügbar.
Öffentliche Eigenschaft AssemblerListingLocation Übernimmt oder bestimmt den relativen Pfad und/oder Namen für eine ASM-Listendatei.AssemblerListingLocation macht die Funktionalität der Compileroption 367y26c6(v=vs.120).md verfügbar.
Öffentliche Eigenschaft AssemblerOutput Ruft den Inhalt der Assembly-Sprachenausgabedatei ab oder legt diesen fest.AssemblerOutput macht die Funktionalität der Compileroptionen /FA, /Fa (Listendatei) verfügbar.
Öffentliche Eigenschaft BasicRuntimeChecks Ruft einen Wert ab, der angibt, ob vollständige Laufzeitfehlerüberprüfungen /RTC (Laufzeitfehlerüberprüfungen)) ausgeführt werden sollen, ob zur Laufzeit die Gültigkeit des Stapelrahmens überprüft werden soll (/RTC (Laufzeitfehlerüberprüfungen)) und ob zur Laufzeit auf nicht initialisierte Variablen überprüft werden soll (/RTC (Laufzeitfehlerüberprüfungen)), oder legt diesen fest.
Öffentliche Eigenschaft BrowseInformation Gibt die Ebene der Wechseln Sie Informationen der BSC-Datei an.BrowseInformation macht die Funktionalität der Compileroptionen /FR, /Fr (SBR-Datei erstellen) verfügbar.
Öffentliche Eigenschaft BrowseInformationFile Ruft den optionalen Namen für die Browserinformationsdatei ab oder legt diesen fest.BrowseInformationFile macht die Funktionalität der Compileroptionen /FR, /Fr (SBR-Datei erstellen) verfügbar.
Öffentliche Eigenschaft BufferSecurityCheck Ruft einen Wert ab, der angibt, ob auf Pufferüberläufe überprüft werden soll, oder legt diesen fest.BufferSecurityCheck macht die Funktionalität der Compileroption /GS (Puffer-Sicherheitsüberprüfung) verfügbar.
Öffentliche Eigenschaft CallingConvention Ruft die Standardaufrufkonvention für die Anwendung ab oder legt diese fest.CallingConvention macht die Funktionalität der Compileroptionen /Gd, /Gr, /Gv, /Gz (Aufrufkonvention) verfügbar.
Öffentliche Eigenschaft CompileAs Wählt die Kompilierungssprachoption für C- und CPP-Dateien aus.CompileAs macht die Funktionalität der Compileroptionen /Tc, /Tp, /TC, /TP (Typ der Quelldatei angeben) verfügbar.
Öffentliche Eigenschaft CompileAsManaged Ruft einen Wert ab, der Compileroptionen angibt, oder legt diesen fest.
Öffentliche Eigenschaft CompileOnly Ruft einen Wert ab, der angibt, ob die Kompilierung ohne Verknüpfen erfolgen soll, oder legt diesen fest.
Öffentliche Eigenschaft DebugInformationFormat Übernimmt oder bestimmt die Art der vom Compiler generierten Debuginformationen.DebugInformationFormat macht die Funktionalität der Compileroptionen /Z7, /Zi, /ZI (Debuginformationsformat) verfügbar.
Öffentliche Eigenschaft DefaultCharIsUnsigned Ruft einen Wert ab, der angibt, dass der Standardzeichentyp ohne Vorzeichen ist, oder legt diesen fest.DefaultCharIsUnsigned macht die Funktionalität der Compileroption /J (Standardmäßig "unsigned char") verfügbar.
Öffentliche Eigenschaft Detect64BitPortabilityProblems Ruft einen Wert ab oder legt diesen fest, der angibt, ob der Compiler auf 64-Bit-Portabilitätsprobleme überprüft.Detect64BitPortabilityProblems macht die Funktionalität der Compileroption /Wp64 (Nach 64-Bit-Portabilitätsproblemen suchen) verfügbar.
Öffentliche Eigenschaft DisableLanguageExtensions Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob Spracherweiterungen unterdrückt werden sollen.DisableLanguageExtensions macht die Funktionalität der Compileroption /Za, /Ze (Spracherweiterungen deaktivieren) verfügbar.
Öffentliche Eigenschaft DisableSpecificWarnings Ruft einen Wert ab oder legt einen Wert fest, der die gewünschten Warnungsnummern deaktiviert. Nummern werden in eine durch Semikolons getrennte Liste eingefügt.DisableSpecificWarnings macht die Funktionalität der Compileroption /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warnstufe) verfügbar.
Öffentliche Eigenschaft EnableEnhancedInstructionSet Ruft einen Wert ab, der die Verwendung von Anweisungen in Prozessoren aktiviert, die erweiterte Anweisungssets, z. B. die SSE- und SSE2-Erweiterung der IA-32-Architektur, unterstützen, oder legt diesen fest.EnableEnhancedInstructionSet macht die Funktionalität der Compileroption /ARCH verfügbar.
Öffentliche Eigenschaft EnableFiberSafeOptimizations Ruft einen Wert ab bzw. legt diesen fest, der die Speicherplatzoptimierung bei Verwendung von Fibers sowie den Zugriff auf den lokalen Threadspeicher aktiviert.EnableFiberSafeOptimizations macht die Funktionalität der Compileroption /GT (Fiber-sicheren lokalen Thread-Speicher unterstützen) verfügbar.
Öffentliche Eigenschaft EnableFunctionLevelLinking Ruft einen Wert ab oder legt einen Wert fest, der Funktionslevel-Linking aktiviert.EnableFunctionLevelLinking macht die Funktionalität der Compileroption /Gy (Funktionslevel-Linking aktivieren) verfügbar.
Öffentliche Eigenschaft EnableIntrinsicFunctions Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob systeminterne Funktionen zum Generieren von schnellerem, möglicherweise umfangreicherem Code verwendet werden sollen.EnableIntrinsicFunctions macht die Funktionalität der Compileroption /Oi (Systeminterne Funktionen erstellen) verfügbar.
Öffentliche Eigenschaft EnablePREfast Ruft ab oder legt fest, ob die Analyse von systemeigenem Code aktiviert ist.
Öffentliche Eigenschaft ErrorReporting Ruft die Erstellung von Compilerfehlerberichten ab oder legt diese fest.
Öffentliche Eigenschaft ExceptionHandling Ruft einen Wert ab oder legt einen Wert fest, der für Aufrufe von Destruktoren für automatische Objekte während einer Stapelentladung, die von einer ausgelösten Ausnahme verursacht wurde, verwendet wird.ExceptionHandling macht die Funktionalität der Compileroption /EH (Ausnahmebehandlungsmodell) verfügbar.
Öffentliche Eigenschaft ExecutionBucket Infrastruktur. Nur zur internen Verwendung von Microsoft.
Öffentliche Eigenschaft ExpandAttributedSource Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob eine Listendatei mit in die Quelldatei eingefügten erweiterten Attributen erstellt werden soll.ExpandAttributedSource macht die Funktionalität der Compileroption /Fx (Eingefügten Code zusammenführen) verfügbar.
Öffentliche Eigenschaft FavorSizeOrSpeed Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Codegröße oder - geschwindigkeit vorgezogen werden soll.FavorSizeOrSpeed macht die Funktionalität der Compileroptionen /Os, /Ot (Kompakten Code bevorzugen, Schnellen Code bevorzugen) verfügbar.
Öffentliche Eigenschaft FloatingPointExceptions Legt fest oder ruft ab, ob die benutzerdefinierte Behandlung von Gleitkommaausnahmen aktiviert ist.
Öffentliche Eigenschaft floatingPointModel Legt das Gleitkommamodell fest oder ruft dieses ab.
Öffentliche Eigenschaft ForceConformanceInForLoopScope Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Übereinstimmung des Compilers mit dem lokalen Bereich in einer For-Schleife erzwungen werden soll.ForceConformanceInForLoopScope macht die Funktionalität der Compileroption /Zc:forScope (Übereinstimmung in for-Schleifenbereich erzwingen) verfügbar.
Öffentliche Eigenschaft ForcedIncludeFiles Ruft einen Wert ab oder legt einen Wert fest, der eine oder mehrere erzwungene Includedateien angibt.ForcedIncludeFiles macht die Funktionalität der Compileroption /FI (Name der expliziten Includedatei) verfügbar.
Öffentliche Eigenschaft ForcedUsingFiles Erzwingt die Verwendung eines Dateinamens, als ob er an die #using-Direktive (C++)-Direktive übergeben worden wäreForcedUsingFiles macht die Funktionalität der Compileroption /FU (Name der expliziten #using-Datei) verfügbar.
Öffentliche Eigenschaft FullIncludePath Ruft eine Liste aller Verzeichnisse im Build ab. Eine Verkettung von mit /I angegebenen Verzeichnissen und den im Dialogfeld VC++ Directories angegebenen Verzeichnissen.Makros in diesen Verzeichnissen werden ebenfalls ausgewertet.
Öffentliche Eigenschaft GeneratePreprocessedFile Ruft die Präprozessoroption für diese Konfiguration ab oder legt sie fest.GeneratePreprocessedFile macht die Funktionalität der Compileroptionen /EP (Vorverarbeitung an "stdout" ohne #line-Direktiven) und /P (Vorverarbeitung in eine Datei) verfügbar.
Öffentliche Eigenschaft GenerateXMLDocumentationFiles Legt fest oder ruft ab, ob XML-Dokumentationsdateien generiert werden sollen.
Öffentliche Eigenschaft IgnoreStandardIncludePath Ruft einen Wert ab, der angibt, ob der Standardincludepfad ignoriert werden soll, oder legt diesen fest.IgnoreStandardIncludePath macht die Funktionen der /X (Standardincludepfade ignorieren)-Option des Compilers, der Eigenschaftenseiten "MIDL": "Allgemein"-Option des MIDL-Compilers und der Eigenschaftenseiten "Ressourcen"-Option des Ressourcencompilers verfügbar.
Öffentliche Eigenschaft InlineFunctionExpansion Ruft die Ebene der Inlinefunktionserweiterung für den Build ab oder legt sie fest.InlineFunctionExpansion macht die Funktionalität der Compileroptionen /Ob (Inlinefunktionserweiterung) verfügbar.
Öffentliche Eigenschaft KeepComments Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob Kommentare aus dem Quellcode unterdrückt werden sollen.KeepComments macht die Funktionalität der Compileroption /C (Kommentare bei der Vorverarbeitung beibehalten) verfügbar.
Öffentliche Eigenschaft MinimalRebuild Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob Änderungen an C++-Klassendefinitionen erkannt und betroffene Quelldateien neu kompiliert werden sollen.MinimalRebuild macht die Funktionalität der Compileroption /Gm (Minimale Neuerstellung aktivieren) verfügbar.
Öffentliche Eigenschaft ObjectFile Ruft einen Namen ab, der den Standardobjektdateinamen überschreibt, oder legt diesen fest.ObjectFile macht die Funktionalität der Compileroption /Fo (Name der Objektdatei) verfügbar.
Öffentliche Eigenschaft OmitDefaultLibName Ruft ab oder legt fest, ob der Standardbibliotheksname weggelassen wird.
Öffentliche Eigenschaft OmitFramePointers Ruft einen Wert ab, der angibt, ob Framezeiger unterdrückt werden sollen, oder legt diesen fest.OmitFramePointers macht die Funktionalität der Compileroption /Oy (Framezeiger unterdrücken) verfügbar.
Öffentliche Eigenschaft OpenMP Ruft ab oder legt fest, ob OpenMP aktiviert ist.
Öffentliche Eigenschaft Optimization Ruft Optionen für die Codeoptimierung ab oder legt diese fest.Optimization macht die Funktionalität der Compileroptionen /Od (Deaktivieren (Debuggen)), /O1, /O2 (Größe minimieren, Geschwindigkeit maximieren) und /Ox (Komplette Optimierung) verfügbar.
Öffentliche Eigenschaft PrecompiledHeaderFile Übernimmt oder bestimmt Pfad und/oder Name der generierten vorkompilierten Headerdatei.PrecompiledHeaderFile macht die Funktionalität der Compileroption /Fp (Name der PCH-Datei) verfügbar.
Öffentliche Eigenschaft PrecompiledHeaderThrough Ruft den Headerdateinamen ab bzw. legt diesen fest, der beim Erstellen oder Verwenden einer vorkompilierten Headerdatei verwendet werden soll.PrecompiledHeaderThrough macht die Funktionalität der Compileroptionen /Yc (Datei der vorkompilierten Header erstellen) und /Yu (Vorkompilierte Headerdatei verwenden) verfügbar.
Öffentliche Eigenschaft PreprocessorDefinitions Ruft eine oder mehrere Präprozessordefinitionen ab oder legt diese fest.PreprocessorDefinitions macht die Funktionen der /D (Präprozessordefinitionen)-Option des Compilers, der Eigenschaftenseiten "MIDL": "Allgemein"-Option des MIDL-Compilers und der Eigenschaftenseiten "Ressourcen"-Option des Ressourcencompilers verfügbar.
Öffentliche Eigenschaft ProgramDataBaseFileName Ruft einen Namen für eine vom Compiler generierte PDB-Datei und einen Basisnamen für die erforderliche vom Compiler generierte IDB-Datei ab oder legt diese fest.ProgramDataBaseFileName macht die Funktionalität der Compileroption /Fd (Programmdatenbank-Dateiname) verfügbar.
Öffentliche Eigenschaft RuntimeLibrary Übernimmt oder bestimmt die Laufzeitbibliothek zum Verknüpfen.RuntimeLibrary macht die Funktionalität der Compileroptionen /MD, /MT, /LD (Laufzeitbibliothek verwenden) verfügbar.
Öffentliche Eigenschaft RuntimeTypeInfo Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob zur Laufzeit Code zum Überprüfen von C++-Objekttypen hinzugefügt werden soll (Laufzeit-Typeninformation).RuntimeTypeInfo macht die Funktionalität der Compileroption /GR (Laufzeit-Typeninformation aktivieren) verfügbar.
Öffentliche Eigenschaft ShowIncludes Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob mit der Compilerausgabe eine Liste von Includedateien generiert werden soll.ShowIncludes macht die Funktionalität der Compileroption /showIncludes (Includedateien auflisten) verfügbar.
Öffentliche Eigenschaft SmallerTypeCheck Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Überprüfung für die Konvertierung in kleinere Typen aktiviert werden soll.SmallerTypeCheck macht die Funktionalität der Compileroption /RTC (Laufzeitfehlerüberprüfungen) verfügbar.
Öffentliche Eigenschaft StringPooling Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob schreibgeschütztes Stringpooling zum Generieren von kleinerem kompilierten Code aktiviert werden soll.StringPooling macht die Funktionalität der Compileroption /GF (Doppelte Zeichenfolgen beseitigen) verfügbar.
Öffentliche Eigenschaft StructMemberAlignment Gibt 1-, 2-, 4-, 8- oder 16-Byte-Begrenzungen für die Ausrichtung der Strukturmember an.StructMemberAlignment macht die Funktionen der /Zp (Ausrichten des Strukturmembers)-Option des C++-Compilers und der Eigenschaftenseiten "MIDL": "Erweitert"-Option des MIDL-Compilers verfügbar.
Öffentliche Eigenschaft SuppressStartupBanner Unterdrückt die Anzeige von Startbanner und Informationsmeldungen.
Öffentliche Eigenschaft ToolKind Ruft den Namen der Art des Tools ab.
Öffentliche Eigenschaft toolName Ruft den Namen des angegebenen Tools ab.
Öffentliche Eigenschaft ToolPath Ruft den Pfad zum angegebenen Tool ab.
Öffentliche Eigenschaft TreatWChar_tAsBuiltInType Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob wchar_t als integrierter Typ behandelt werden soll.TreatWChar_tAsBuiltInType macht die Funktionalität der Compileroption /Zc:wchar_t (wchar_t ist der systemeigene Typ) verfügbar.
Öffentliche Eigenschaft UndefineAllPreprocessorDefinitions Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Definition aller zuvor definierten Präprozessorwerte rückgängig gemacht werden soll.UndefineAllPreprocessorDefinitions macht die Funktionalität der Compileroption /U, /u (Symboldefinitionen aufheben) verfügbar.
Öffentliche Eigenschaft UndefinePreprocessorDefinitions Ruft einen Wert ab oder legt einen Wert fest, der eine oder mehrere Aufhebungen von Definitionen für Präprozessoren angibt.UndefinePreprocessorDefinitions macht die Funktionen der /U, /u (Symboldefinitionen aufheben)-Option des C++-Compilers und der Eigenschaftenseiten "MIDL": "Erweitert"-Option des MIDL-Compilers verfügbar.
Öffentliche Eigenschaft UseFullPaths Ruft ab oder legt fest, ob vollständige Pfade verwendet werden sollen.
Öffentliche Eigenschaft UsePrecompiledHeader Ruft einen Wert ab oder legt einen Wert fest, der das Generieren und Verwenden eines vorkompilierten Headers beim Erstellungsvorgang aktiviert.UsePrecompiledHeader macht die Funktionalität der Compileroptionen /Yc (Datei der vorkompilierten Header erstellen) und /Yu (Vorkompilierte Headerdatei verwenden) verfügbar.
Öffentliche Eigenschaft UseUnicodeResponseFiles Gibt an, ob der Compiler Unicode-Antwortdateien verwendet.
Öffentliche Eigenschaft VCProjectEngine Ruft einen Zeiger auf das Projektmodul ab.
Öffentliche Eigenschaft WarnAsError Ruft einen Wert ab, der angibt, ob der Compiler alle Warnungen als Fehler behandelt, oder legt diesen fest.WarnAsError macht die Funktionen der /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warnstufe)-Option des C++-Compilers und der Eigenschaftenseiten "MIDL": "Allgemein"-Option des MIDL-Compilers verfügbar.
Öffentliche Eigenschaft WarningLevel Ruft einen Wert ab, der die Genauigkeit darstellt, mit der der Compiler auf potenziell verdächtige Konstrukte überprüft, oder legt diesen fest.WarningLevel macht die Funktionen der /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warnstufe)-Option des C++-Compilers und der /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warnstufe)-Option des MIDL-Compilers verfügbar.
Öffentliche Eigenschaft WholeProgramOptimization Ruft einen Wert ab, der angibt, ob modulübergreifende Optimierungen durch Verzögern der Codegenerierung bis zur Verknüpfungszeit aktivieren werden sollen, oder legt diesen fest.WholeProgramOptimization macht die Funktionalität der Compileroption /GL (Optimierung des ganzen Programms) verfügbar.
Öffentliche Eigenschaft XMLDocumentationFileName Ruft den Namen der XML-Dokumentationsdatei ab oder legt diesen fest.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode get_PropertyOption Infrastruktur. Nur zur internen Verwendung von Microsoft.

Zum Seitenanfang

Hinweise

Die folgenden neuen Compileroptionen wurden in Visual Studio 2005 hinzugefügt:

Die folgenden Compileroptionen Visual Studio 2005 wurden entfernt:

  • /Op

  • /G6, /G7 und /GB

Beispiele

Das folgende Beispiel zeigt, wie die Eigenschaften EnablePREfast und AdditionalOptions verwendet, um den /analyze:WX- Schalter zu stellen. Beide (Eigenschaften werden benötigt, um dazu.) Die Angabe von /analyze:WX- bedeutet, dass Code nicht als Fehler beim Kompilieren mit /WX behandelt werden. Weitere Informationen finden Sie unter /analyze (Codeanalyse).

Um dieses Beispiel auszuführen, geben Sie ein und führen Sie dieses Beispiel wie in Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell umrissen aus. dann in der neuen Instanz von Visual Studio, laden Sie ein Visual C++-Projekt und verwenden Sie den Erweiterungsmanager, um das Add-In zu aktivieren.

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

Siehe auch

Referenz

Microsoft.VisualStudio.VCProjectEngine-Namespace

Weitere Ressourcen

Walkthrough: Using /clr:pure Features