Ich habe zwei Plattform-Toolsets: v110 und v110_xp für mein Projekt, und abhängig von der gewählten Plattform möchte ich einen Teil des zu kompilierenden Codes einschließen/ausschließen.Visual Studio: Wie Plattform-Toolset als Präprozessordirektive zu verwenden?
_MSC_FULL_VER
und $(PlatformToolsetVersion)
haben für beide Plattform-Toolsets genau denselben Wert. Alternativ habe ich versucht, $(PlatformToolset)
wie folgt zu verwenden:
_MSC_PLATFORM_TOOLSET=$(PlatformToolset)
aber das Problem ist, dass $(PlatformToolset)
nicht numerisch. Ich frage mich, wie kann ich diesen nicht-numerischen Wert als Präprozessor-Direktive verwenden?
Der Versuch, mehrere Lösungen habe ich herausgefunden, dass
_MSC_PLATFORM_TOOLSET='$(PlatformToolset)'
und dann
#if (_MSC_PLATFORM_TOOLSET=='v110')
[Something]
#endif
funktioniert gut, aber
#if(_MSC_PLATFORM_TOOLSET == 'v110_xp')
[SomethingElse]
#endif
Ergebnisse in "zu viele Zeichen in Zeichenkonstante" Fehler .
Für den Zusammenhang mit diesen ähnliche Frage finden Sie unter: Visual Studio: how to check used C++ platform toolset programmatically