J'ai deux outils de plate-forme: v110 et v110_xp pour mon projet, et en fonction de la plate-forme choisie, je veux inclure/exclure une partie du code à compiler.Visual Studio: comment utiliser les outils de la plate-forme comme directive de préprocesseur?
_MSC_FULL_VER
et $(PlatformToolsetVersion)
ont exactement la même valeur pour ces deux jeux d'outils de plate-forme. Sinon, j'ai essayé d'utiliser $(PlatformToolset)
comme suit:
_MSC_PLATFORM_TOOLSET=$(PlatformToolset)
mais le problème est que $(PlatformToolset)
est non numérique. Se demandait comment puis-je utiliser cette valeur non numérique comme une directive de préprocesseur?
essayé plusieurs solutions, je compris que
_MSC_PLATFORM_TOOLSET='$(PlatformToolset)'
puis
#if (_MSC_PLATFORM_TOOLSET=='v110')
[Something]
#endif
fonctionne très bien, mais
#if(_MSC_PLATFORM_TOOLSET == 'v110_xp')
[SomethingElse]
#endif
résultats dans "trop de caractère à caractère constant" erreur .
Pour le contexte s'il vous plaît voir cette question similaire: Visual Studio: how to check used C++ platform toolset programmatically