Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

VCCLCompilerTool.EnablePREfast Property

Definition

Namespace:
Microsoft.VisualStudio.VCProjectEngine
Assembly:
Microsoft.VisualStudio.VCProjectEngine.dll
Package:
Microsoft.VisualStudio.VCProjectEngine v17.14.40264

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Gets or sets whether Native Code Analysis is enabled.

public:
 property bool EnablePREfast { bool get(); void set(bool value); };
public:
 property bool EnablePREfast { bool get(); void set(bool value); };
[System.Runtime.InteropServices.DispId(89)]
public bool EnablePREfast { [System.Runtime.InteropServices.DispId(89)] get; [System.Runtime.InteropServices.DispId(89)] set; }
[<System.Runtime.InteropServices.DispId(89)>]
[<get: System.Runtime.InteropServices.DispId(89)>]
[<set: System.Runtime.InteropServices.DispId(89)>]
member this.EnablePREfast : bool with get, set
Public Property EnablePREfast As Boolean

Property Value

true to enable code analysis (/analyze).

Attributes

Examples

The following example demonstrates how to use the EnablePREfast and AdditionalOptions properties to set the /analyze:WX- switch. (Both properties are required to do this.) Specifying /analyze:WX- means that code analysis warnings will not be treated as errors when compiling with /WX. For more information, see /analyze (Code Analysis).

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

Remarks

Additional options can be set using the AdditionalOptions property.

Note

/analyze is only available in Enterprise (Team Developer) versions for x86 compilers.

Applies to