Share via


Utilizar $(Inherit) y $(NoInherit)

Actualización: noviembre 2007

En este tema se ofrecen ejemplos de uso de las macros $(Inherit) y $(NoInherit).

  • Defina la siguiente ruta de acceso de inclusión adicional (/I) en el nivel de proyecto:

    c:\test
    
  • Defina la siguiente ruta de acceso de inclusión adicional para un archivo concreto:

    c:\test2;c:\mystuff
    
  • Observe la página de propiedades Línea de comandos del archivo. que incluye:

    /I"c:\test2" /I"c:\mystuff" /I"c:\test"
    

    Esto se debe a que, si $(Inherit) no se incluye explícitamente en la lista, se incluirá implícitamente al final de las rutas de acceso de inclusión adicionales de la configuración del archivo.

  • Sin embargo, si cambia la ruta de acceso de inclusión adicional de la configuración del archivo a:

    c:\test2;$(Inherit);c:\mystuff
    

    se expandirá a lo siguiente en la página de propiedades Línea de comandos del archivo:

    /I"c:\test2" /I"c:\test" /I"c:\mystuff"
    

    Tenga en cuenta que la ruta de acceso de inclusión adicional de la configuración del proyecto es el lugar donde se encontraba la macro $(Inherit). La macro $(Inherit) se utiliza como guía para situar los valores heredados que forman parte de la propiedad. Puede estar en cualquier parte de la lista.

  • Si cambia la ruta de acceso de inclusión adicional de la configuración del archivo a:

    $(Inherit);c:\test2;$(Inherit);c:\mystuff
    

    se expandirá a lo siguiente en la página de propiedades Línea de comandos del archivo:

    /I"c:\test" /I"c:\test2" /I"c:\test" /I"c:\mystuff"
    
  • Si cambia la ruta de acceso de inclusión adicional de la configuración del archivo a:

    c:\test2;c:\mystuff;$(NoInherit)
    

    se expandirá a lo siguiente en la página de propiedades Línea de comandos del archivo:

    /I"c:\test2" /I"c:\mystuff"
    

    Observe que el /I"c:\test" de la configuración del proyecto ha desaparecido. A diferencia de $(Inherit), que depende de la ubicación, la ubicación de la macro $(NoInherit) no tiene nada que ver con cómo se utilice.

$(NoInherit) tiene prioridad sobre $(Inherit). Siempre que $(NoInherit) esté presente, $(Inherit) se pasará por alto. Por ejemplo, si cambia la ruta de acceso de inclusión adicional de la configuración del archivo a:

c:\test2;$(Inherit);c:\mystuff;$(NoInherit)

se expandirá exactamente igual que si fuera:

c:\test2;c:\mystuff;$(NoInherit)

Tenga cuidado al utilizar $(NoInherit) en la propiedad Definiciones de herramientas como el compilador o el vinculador de C/C++: podría cancelar el uso de los valores predeterminados del proyecto (como los definidos por Uso de ATL y Uso de MFC).

Vea también

Otros recursos

Macros para propiedades y comandos de compilación