Compartir a través de


VCCLCompilerTool (Interfaz)

El objeto VCCLCompilerTool expone la funcionalidad de las opciones del compilador de C++.Vea Opciones del compilador para obtener más información sobre las opciones del compilador.

Espacio de nombres:  Microsoft.VisualStudio.VCProjectEngine
Ensamblado:  Microsoft.VisualStudio.VCProjectEngine (en Microsoft.VisualStudio.VCProjectEngine.dll)

Sintaxis

'Declaración
<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

El tipo VCCLCompilerTool expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública AdditionalIncludeDirectories Obtiene o establece uno o más directorios para agregar a la ruta de inclusión.AdditionalIncludeDirectories expone la funcionalidad de la opción de /I (Directorios de inclusión adicionales) del compilador, la opción de Páginas de propiedades MIDL: General del compilador de MIDL, y la opción de Páginas de propiedades Recursos del compilador de recursos.
Propiedad pública AdditionalOptions Obtiene o establece opciones que se van a agregar al final de la línea de comandos inmediatamente antes del nombre o de los nombres de archivo.Un ejemplo de ello es si una opción no es compatible con el modelo de objetos.
Propiedad pública AdditionalUsingDirectories Obtiene o establece un directorio donde buscar para resolver referencias a archivos que se transfieren a la directiva de directiva #using (C++) .AdditionalUsingDirectories expone la funcionalidad de la opción /AI (Especificar directorios de metadatos) del compilador.
Propiedad pública AssemblerListingLocation Obtiene o establece la ruta de acceso relativa y/o el nombre de un archivo de listas de ASM.AssemblerListingLocation expone la funcionalidad de la opción de /Fa del compilador.
Propiedad pública AssemblerOutput Obtiene o establece el contenido del archivo de salida del lenguaje de ensamblado.AssemblerOutput expone la funcionalidad de las opciones de /FA, /Fa (Archivo de lista) del compilador.
Propiedad pública BasicRuntimeChecks Obtiene o establece un valor para indicar si se van a realizar comprobaciones completas de errores en tiempo de ejecución /RTC (Comprobaciones de errores en tiempo de ejecución)), si se va a comprobar la validez del marco de pila en tiempo de ejecución (/RTC (Comprobaciones de errores en tiempo de ejecución)) y si se van a comprobar las variables no inicializadas en tiempo de ejecución (/RTC (Comprobaciones de errores en tiempo de ejecución)).
Propiedad pública BrowseInformation Especifica el nivel de información de examen en el archivo .bsc.BrowseInformation expone la funcionalidad de las opciones de /FR, /Fr (Crear archivo .Sbr) del compilador.
Propiedad pública BrowseInformationFile Obtiene o establece el nombre opcional para el archivo de información del explorador.BrowseInformationFile expone la funcionalidad de las opciones de /FR, /Fr (Crear archivo .Sbr) del compilador.
Propiedad pública BufferSecurityCheck Obtiene o establece un valor que indica si se van a comprobar las saturaciones del búfer.BufferSecurityCheck expone la funcionalidad de la opción /GS (Comprobación de seguridad del búfer) del compilador.
Propiedad pública CallingConvention Obtiene o establece la convención de llamada predeterminada para la aplicación.CallingConvention expone la funcionalidad de las opciones de /Gd, /Gr, /Gz (Convención de llamada) del compilador.
Propiedad pública CompileAs Selecciona la opción de lenguaje de compilación para archivos .c y .cpp.CompileAs expone la funcionalidad de las opciones de /Tc, /Tp, /TC, /TP (Especificar el tipo de archivo de código fuente) del compilador.
Propiedad pública CompileAsManaged Obtiene o establece un valor que indica las opciones del compilador.
Propiedad pública CompileOnly Obtiene o establece un valor que indica si se va a compilar sin vinculación.
Propiedad pública DebugInformationFormat Obtiene o establece el tipo de información de depuración generada por el compilador.DebugInformationFormat expone la funcionalidad de las opciones de /Z7, /Zi, /ZI (Formato de la información de depuración) del compilador.
Propiedad pública DefaultCharIsUnsigned Obtiene o establece el tipo de carácter predeterminado en sin signo.DefaultCharIsUnsigned expone la funcionalidad de la opción /J (El tipo de carácter predeterminado no tiene signo) del compilador.
Propiedad pública Detect64BitPortabilityProblems Obtiene o establece un valor que indica si el compilador comprobará si hay problemas de portabilidad de 64 bits.Detect64BitPortabilityProblems expone la funcionalidad de la opción /Wp64 (Detectar problemas de portabilidad de 64 bits) del compilador.
Propiedad pública DisableLanguageExtensions Obtiene o establece un valor que indica si se van a suprimir las extensiones de lenguaje.DisableLanguageExtensions expone la funcionalidad de la opción /Za, /Ze (Deshabilitar extensiones de lenguaje) del compilador.
Propiedad pública DisableSpecificWarnings Obtiene o establece un valor que deshabilita los números de advertencia deseados; coloca los números en una lista delimitada por punto y coma.DisableSpecificWarnings expone la funcionalidad de la opción /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Nivel de advertencia) del compilador.
Propiedad pública EnableEnhancedInstructionSet Obtiene o establece un valor que permite el uso de instrucciones situadas en procesadores que admiten conjuntos de instrucciones mejorados, como mejoras de SSE y SSE2 a IA-32.EnableEnhancedInstructionSet expone la funcionalidad de la opción /ARCH del compilador.
Propiedad pública EnableFiberSafeOptimizations Obtiene o establece un valor que permite optimizar el espacio de memoria al utilizar fibras y acceso de almacenamiento local de subprocesos.EnableFiberSafeOptimizations expone la funcionalidad de la opción /GT (Admitir el almacenamiento local de subprocesos para fibra) del compilador.
Propiedad pública EnableFunctionLevelLinking Obtiene o establece un valor que habilita la vinculación en el nivel de función.EnableFunctionLevelLinking expone la funcionalidad de la opción /Gy (Habilitar vinculación en el nivel de función) del compilador.
Propiedad pública EnableIntrinsicFunctions Obtiene o establece un valor que indica si se van a usar funciones intrínsecas para generar más rápidamente, pero posiblemente mayor, código.EnableIntrinsicFunctions expone la funcionalidad de la opción /Oi (Generar funciones intrínsecas) del compilador.
Propiedad pública EnablePREfast Obtiene o establece si el análisis de código nativo está habilitado.
Propiedad pública ErrorReporting Obtiene o establece los informes de errores del compilador.
Propiedad pública ExceptionHandling Obtiene o establece un valor usado para las llamadas a destructores para los objetos automáticos durante un desenredo de pila debido a una excepción.ExceptionHandling expone la funcionalidad de la opción /EH (Modelo de control de excepciones) del compilador.
Propiedad pública ExecutionBucket Infraestructura. Sólo para uso interno de Microsoft.
Propiedad pública ExpandAttributedSource Obtiene o establece un valor que indica si crear un archivo de lista con los atributos expandidos insertados en el archivo de código fuente.ExpandAttributedSource expone la funcionalidad de la opción /Fx (Combinar código insertado) del compilador.
Propiedad pública FavorSizeOrSpeed Obtiene o establece un valor que indica si se va a favorecer el tamaño o la velocidad del código.FavorSizeOrSpeed expone la funcionalidad de las opciones de /Os, /Ot (Favorecer código pequeño, favorecer código rápido) del compilador.
Propiedad pública FloatingPointExceptions Establece u obtiene si está habilitado el control de excepciones de punto flotante definido por el usuario.
Propiedad pública floatingPointModel Establece u obtiene el modelo de punto flotante.
Propiedad pública ForceConformanceInForLoopScope Obtiene o establece un valor que indica si forzar el compilador se ajuste al ámbito local en un bucle For.ForceConformanceInForLoopScope expone la funcionalidad de la opción /Zc:forScope (Forzar ajuste en el ámbito del bucle For) del compilador.
Propiedad pública ForcedIncludeFiles Obtiene o establece un valor que especifica uno o más archivos de inclusión.ForcedIncludeFiles expone la funcionalidad de la opción /FI (Dar nombre al archivo de inclusión obligatorio) del compilador.
Propiedad pública ForcedUsingFiles Fuerza el uso de un nombre de archivo como si se hubiera transferido a la directiva de directiva #using (C++) .ForcedUsingFiles expone la funcionalidad de la opción /FU (Asignar nombre al archivo #using obligatorio) del compilador.
Propiedad pública FullIncludePath Obtiene una lista de todos los directorios incluidos en la compilación; es una concatenación de los directorios especificados con /I y los directorios especificados en el cuadro de diálogo VC++ Directories.También se evaluarán las macros presentes en estos directorios.
Propiedad pública GeneratePreprocessedFile Obtiene o establece la opción de preprocesamiento para esta configuración.GeneratePreprocessedFile expone la funcionalidad de las opciones de /EP (Preprocesar para stdout sin directivas #line) y de /P (Preprocesar y escribir en un archivo) del compilador.
Propiedad pública GenerateXMLDocumentationFiles Establece u obtiene si se van a generar archivos de documentación XML.
Propiedad pública IgnoreStandardIncludePath Obtiene o establece un valor que indica si omitir la ruta de inclusión estándar.IgnoreStandardIncludePath expone la funcionalidad de la opción de /X (Omitir rutas de acceso de inclusión estándar) del compilador, la opción de Páginas de propiedades MIDL: General del compilador de MIDL, y la opción de Páginas de propiedades Recursos del compilador de recursos.
Propiedad pública InlineFunctionExpansion Obtiene o establece el nivel de expansión de funciones inline para la compilación.InlineFunctionExpansion expone la funcionalidad de las opciones de /Ob (Expansión de funciones inline) del compilador.
Propiedad pública KeepComments Obtiene o establece un valor que indica si suprimir la franja de comentarios del código fuente.KeepComments expone la funcionalidad de la opción /C (Conservar los comentarios durante el preprocesamiento) del compilador.
Propiedad pública MinimalRebuild Obtiene o establece un valor que indica si se van a detectar los cambios en las definiciones de clase de C++ y volver a compilar los archivos de código fuente afectados.MinimalRebuild expone la funcionalidad de la opción /Gm (Habilitar recompilación mínima) del compilador.
Propiedad pública ObjectFile Obtiene o establece un nombre para invalidar el nombre del archivo objeto predeterminado.ObjectFile expone la funcionalidad de la opción /Fo (Nombre del archivo objeto) del compilador.
Propiedad pública OmitDefaultLibName Obtiene o establece si se omite el nombre de biblioteca predeterminado.
Propiedad pública OmitFramePointers obtiene o establece un valor que indica si suprimir framepointers.OmitFramePointers expone la funcionalidad de la opción /Oy (Omisión de puntero de marco) del compilador.
Propiedad pública OpenMP Obtiene o establece si OpenMP está habilitado.
Propiedad pública Optimization Obtiene o establece las opciones para la optimización del código.Optimization expone la funcionalidad de /Od (Deshabilitar (Depurar))del compilador, de /O1, /O2 (Minimizar tamaño, maximizar velocidad), y las opciones de /Ox (Optimización completa) .
Propiedad pública PrecompiledHeaderFile Obtiene o establece la ruta de acceso y/o el nombre del archivo de encabezado precompilado generado.PrecompiledHeaderFile expone la funcionalidad de la opción /Fp (Dar nombre al archivo .Pch) del compilador.
Propiedad pública PrecompiledHeaderThrough Obtiene o establece el nombre del archivo de encabezado que utilizar al crear o usar un archivo de encabezado precompilado.PrecompiledHeaderThrough expone la funcionalidad de /Yc (Crear archivo de encabezado precompilado)del compilador, y las opciones de /Yu (Utilizar el archivo de encabezado precompilado) .
Propiedad pública PreprocessorDefinitions Obtiene o establece una o más definiciones del preprocesador.PreprocessorDefinitions expone la funcionalidad de la opción de /D (Definiciones de preprocesador) del compilador, la opción de Páginas de propiedades MIDL: General del compilador de MIDL, y la opción de Páginas de propiedades Recursos del compilador de recursos.
Propiedad pública ProgramDataBaseFileName Obtiene o establece un nombre para un archivo .pdb generado por y nombre base para el archivo .idb necesario generado por.ProgramDataBaseFileName expone la funcionalidad de la opción /Fd (Nombre del archivo de base de datos del programa) del compilador.
Propiedad pública RuntimeLibrary obtiene o establece la biblioteca en tiempo de ejecución para vincular.RuntimeLibrary expone la funcionalidad de las opciones de /MD, /MT, /LD (Utilizar la biblioteca en tiempo de ejecución) del compilador.
Propiedad pública RuntimeTypeInfo Obtiene o establece un valor que indica si se va a agregar código para comprobar los tipos de objeto de C++ en tiempo de ejecución (información en tiempo de ejecución).RuntimeTypeInfo expone la funcionalidad de la opción /GR (Habilitar la información de tipo en tiempo de ejecución) del compilador.
Propiedad pública ShowIncludes Obtiene o establece un valor que indica si generar una lista de archivos de inclusión con los resultados del compilador.ShowIncludes expone la funcionalidad de la opción /showIncludes (Enumerar archivos de inclusión) del compilador.
Propiedad pública SmallerTypeCheck Obtiene o establece un valor que indica si permitir comprobar conversión a tipos más pequeños.SmallerTypeCheck expone la funcionalidad de la opción /RTC (Comprobaciones de errores en tiempo de ejecución) del compilador.
Propiedad pública StringPooling Obtiene o establece un valor que indica si se va a habilitar la agrupación de solo lectura para generar código compilado de menor tamaño.StringPooling expone la funcionalidad de la opción /GF (Eliminar cadenas duplicadas) del compilador.
Propiedad pública StructMemberAlignment Especifica 1, 2, 4, 8, o límites de 16 bytes para la alineación de los miembros de struct.StructMemberAlignment expone la funcionalidad de la opción de /Zp (Alineación de miembros de estructura) del compilador de C++ y la opción de Páginas de propiedades MIDL: Avanzadas del compilador de MIDL.
Propiedad pública SuppressStartupBanner Suprime la presentación de la pancarta de inicio y los mensajes de información.
Propiedad pública ToolKind Obtiene el nombre del tipo de herramienta.
Propiedad pública toolName Obtiene el nombre de la herramienta especificada.
Propiedad pública ToolPath Obtiene la ruta de acceso a la herramienta especificada.
Propiedad pública TreatWChar_tAsBuiltInType Obtiene o establece un valor que indica si wchar_t se va a tratar como un tipo integrado.TreatWChar_tAsBuiltInType expone la funcionalidad de la opción /Zc:wchar_t (wchar_t es un tipo nativo) del compilador.
Propiedad pública UndefineAllPreprocessorDefinitions Obtiene o establece un valor que indica si anular valores todo del preprocesador definidos previamente.UndefineAllPreprocessorDefinitions expone la funcionalidad de la opción /U, /u (Anular la definición de símbolos) del compilador.
Propiedad pública UndefinePreprocessorDefinitions Obtiene o establece un valor que especifica una o más definiciones del preprocesador.UndefinePreprocessorDefinitions expone la funcionalidad de la opción de /U, /u (Anular la definición de símbolos) del compilador de C++ y la opción de Páginas de propiedades MIDL: Avanzadas del compilador de MIDL.
Propiedad pública UseFullPaths Obtiene o establece si se van a usar rutas de acceso completas.
Propiedad pública UsePrecompiledHeader Obtiene o establece un valor que permite la creación o el uso de un encabezado precompilado durante la compilación.UsePrecompiledHeader expone la funcionalidad de las opciones de /Yc (Crear archivo de encabezado precompilado) y de /Yu (Utilizar el archivo de encabezado precompilado) del compilador.
Propiedad pública UseUnicodeResponseFiles Designa si el compilador usa archivos de respuesta Unicode o no.
Propiedad pública VCProjectEngine Obtiene un puntero al motor de proyecto.
Propiedad pública WarnAsError Obtiene o establece un valor que indica si permitir que el compilador trate todas las advertencias como errores.WarnAsError expone la funcionalidad de la opción de /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Nivel de advertencia) del compilador de C++ y la opción de Páginas de propiedades MIDL: General del compilador de MIDL.
Propiedad pública WarningLevel Obtiene o establece un valor que representa cómo el compilador a la hora de comprobar si hay construcciones sospechosas.WarningLevel expone la funcionalidad de la opción de /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Nivel de advertencia) del compilador de C++ y la opción de /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Nivel de advertencia) del compilador de MIDL.
Propiedad pública WholeProgramOptimization Obtiene o establece un valor que indica si se van a habilitar las optimizaciones entre módulos mientras se retrasa la generación de código al tiempo de vinculación.WholeProgramOptimization expone la funcionalidad de la opción /GL (Optimización de todo el programa) del compilador.
Propiedad pública XMLDocumentationFileName Obtiene o establece el nombre del archivo de documentación XML.

Arriba

Métodos

  Nombre Descripción
Método público get_PropertyOption Infraestructura. Sólo para uso interno de Microsoft.

Arriba

Comentarios

Las nuevas opciones de compilador siguientes se agregaron en Visual Studio 2005:

Las opciones del compilador siguientes se quitaron de Visual Studio 2005:

  • /Op

  • /G6, /G7, y /GB

Ejemplos

El ejemplo siguiente muestra cómo utilizar las propiedades de EnablePREfast y de AdditionalOptions para establecer el modificador de /analyze:WX- .(Ambas propiedades se requieren para ello). Especificar /analyze:WX- significa que las advertencias de análisis de código no se tratan como errores al compilar con /WX.Para obtener más información, vea /analyze (análisis de código).

Para ejecutar este ejemplo, escriba y ejecute este ejemplo de acuerdo con Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.A continuación, en la nueva instancia de Visual Studio, cargue un proyecto de Visual C++ y utilice el administrador de complementos para activar el complemento.

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

Vea también

Referencia

Microsoft.VisualStudio.VCProjectEngine (Espacio de nombres)

Otros recursos

Walkthrough: Using /clr:pure Features