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("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

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 /I (Directorios de inclusión adicionales) del compilador, la opción Páginas de propiedades MIDL: General del compilador de MIDL, y la opción 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 de búsqueda para resolver las referencias a archivos que se transfieren a la directiva #using (Directiva) (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 nombre de un archivo de listas de ASM.AssemblerListingLocation expone la funcionalidad de la opción /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 /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 información de examen en el archivo .bsc.BrowseInformation expone la funcionalidad de las opciones /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 /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 de 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 de la aplicación.CallingConvention expone la funcionalidad de las opciones /Gd, /Gr, /Gv, /Gz (Convención de llamada) del compilador.
Propiedad pública CompileAs Selecciona la opción de lenguaje de compilación para los archivos .C y .CPP.CompileAs expone la funcionalidad de las opciones /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 /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 que se va a firmar.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 las 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 cuando se usa fibra y acceso de almacenamiento local para los 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 código más rápido, pero posiblemente de mayor tamaño.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 objetos automáticos durante un desenredo de pila debido a una excepción producida.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 se ha de 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 /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 se va a forzar el compilador para cumplir con el á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 forzada.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 #using (Directiva) (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 /EP (Preprocesar para stdout sin directivas #line) y /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 se va a omitir la ruta de inclusión estándar.IgnoreStandardIncludePath expone la funcionalidad de la opción /X (Omitir rutas de acceso de inclusión estándar) del compilador, la opción Páginas de propiedades MIDL: General del compilador de MIDL, y la opción Páginas de propiedades Recursos del compilador de recursos.
Propiedad pública InlineFunctionExpansion Obtiene o establece el nivel de expansión de la función insertada para la compilación.InlineFunctionExpansion expone la funcionalidad de las opciones /Ob (Expansión de funciones inline) del compilador.
Propiedad pública KeepComments Obtiene o establece un valor que indica si se va a 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 se van a 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 se van a suprimir los punteros de marcos.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.Optimization expone la funcionalidad de las opciones /Od (Deshabilitar (Depurar)), /O1, /O2 (Minimizar tamaño, maximizar velocidad) y /Ox (Optimización completa) del compilador.
Propiedad pública PrecompiledHeaderFile Obtiene o establece la ruta de acceso y/o 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 archivo de encabezado que se va a usar al crear o usar un archivo de encabezado precompilado.PrecompiledHeaderThrough expone la funcionalidad de las opciones /Yc (Crear archivo de encabezado precompilado) y /Yu (Utilizar el archivo de encabezado precompilado) del compilador.
Propiedad pública PreprocessorDefinitions Obtiene o establece una o más definiciones del preprocesador.PreprocessorDefinitions expone la funcionalidad de la opción /D (Definiciones de preprocesador) del compilador, la opción Páginas de propiedades MIDL: General del compilador de MIDL, y la opción Páginas de propiedades Recursos del compilador de recursos.
Propiedad pública ProgramDataBaseFileName Obtiene o establece un nombre para un archivo .pdb generado por el compilador y nombre base para el archivo .idb necesario generado por el compilador.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 de tiempo de ejecución para los vínculos.RuntimeLibrary expone la funcionalidad de las opciones /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 de tipo 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 se va a generar una lista de archivos de inclusión con la salida 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 se ha de permitir la comprobación para la 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 cadenas 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 los límites de 1, 2, 4, 8 o 16 bytes para la alineación de los miembros de struct.StructMemberAlignment expone la funcionalidad de la opción /Zp (Alineación de miembros de estructura) del compilador de C++ y la opción 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 no se van a definir todos los valores de 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 /U, /u (Anular la definición de símbolos) del compilador de C++ y la opción 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 habilita la creación o el uso de un encabezado precompilado durante la compilación.UsePrecompiledHeader expone la funcionalidad de las opciones /Yc (Crear archivo de encabezado precompilado) y /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 se habilita el compilador para tratar todas las advertencias como errores.WarnAsError expone la funcionalidad de la opción /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Nivel de advertencia) del compilador de C++ y la opción Páginas de propiedades MIDL: General del compilador de MIDL.
Propiedad pública WarningLevel Obtiene o establece un valor que representa lo estricto que debe ser el compilador a la hora de comprobar posibles construcciones sospechosas.WarningLevel expone la funcionalidad de la opción /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Nivel de advertencia) del compilador de C++ y la opción /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 del compilador siguientes se agregaron en Visual Studio 2005:

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

  • /Op

  • /G6, /G7, y /GB

Ejemplos

El ejemplo siguiente muestra cómo utilizar las propiedades EnablePREfast y AdditionalOptions para establecer el modificador /analyze:WX- . (Ambas propiedades son necesarios para hacerlo.) Especificar /analyze:WX- significa que las advertencias de análisis de código no se tratarán 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 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