Partager via


Utilisation de $(Inherit) et de $(NoInherit)

Mise à jour : novembre 2007

Cette rubrique fournit quelques exemples sur l'utilisation des macros $(Inherit) et $(NoInherit).

  • Définissez le chemin d'accès Include (/I) supplémentaire suivant au niveau du projet :

    c:\test
    
  • Pour un fichier particulier, définissez le chemin d'accès Include supplémentaire suivant :

    c:\test2;c:\mystuff
    
  • Observez la page de propriétés Ligne de commande du fichier. Elle contient :

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

    Ceci est dû à l'indication implicite de $(Inherit) à la fin des chemins d'accès Include supplémentaires de la configuration du fichier si $(Inherit) n'est pas placée explicitement dans la liste.

  • Toutefois, si vous remplacez le chemin d'accès Include supplémentaire de la configuration du fichier par ce qui suit :

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

    il va se développer et prendre la forme suivante dans la page de propriétés Ligne de commande du fichier :

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

    Notez que le chemin d'accès Include supplémentaire de la configuration du projet correspond à l'endroit où la macro $(Inherit) a été placée. La macro $(Inherit) est utilisée pour guider le placement des valeurs héritées qui font partie de cette propriété. Elle peut trouver place n'importe où dans la liste.

  • Si vous remplacez le chemin d'accès Include supplémentaire de la configuration du fichier par le texte ci-dessous :

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

    il va se développer et prendre la forme suivante dans la page de propriétés Ligne de commande du fichier :

    /I"c:\test" /I"c:\test2" /I"c:\test" /I"c:\mystuff"
    
  • Si vous remplacez le chemin d'accès Include supplémentaire de la configuration du fichier par le texte ci-dessous :

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

    il va se développer et prendre la forme suivante dans la page de propriétés Ligne de commande du fichier :

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

    Notez la disparition de /I"c:\test", qui était présent dans la configuration du projet. L'emplacement de la macro $(NoInherit) n'a aucune conséquence sur la façon dont elle est utilisée, contrairement à $(Inherit) qui est sensible à l'emplacement.

$(NoInherit) est prioritaire par rapport à $(Inherit). Si $(NoInherit) est présente, $(Inherit) sera ignorée. Par exemple, si vous remplacez le chemin d'accès Include supplémentaire de la configuration du fichier par le texte suivant :

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

il va se développer exactement de la même façon que si le texte était le suivant :

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

Faites preuve de prudence lorsque vous utilisez $(NoInherit) dans la propriété Defines pour des outils, tels que le compilateur ou l'éditeur de liens C/C++ ; vous pouvez annuler l'utilisation des valeurs par défaut du projet (comme celles qui sont définies par Utilisation des ATL et Utilisation des MFC).

Voir aussi

Autres ressources

Macros pour les propriétés et les commandes de génération