bedingte kompilierung
-
hi,
wo stehen eigentlich die macros definiert, mit deren hilfe man nach den verschiedenen os-versionen kompilieren kann?
ich verdeutliche mal, was ich meine:#ifdef ABC_MACRO //... kompiliere für windows98 #endif #ifdef DEF_MACRO //... kompiliere für windows_xp #endif #ifdef XYZ_MACRO //... kompiliere für windows vista #endif
-
Es gibt z.B. _WIN32_WINNT. Du kannst ja mal per Goto Definition gucken, in welchem Header das definiert ist.
-
Die ist von sich aus gar nicht definiert, bzw. fällt als default je nach SDK Version auf einen bestimmten Wert.
Man sollte diese tunlichst selbst definieren!
Siehe auch:
Using the Windows Headers
http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspxJedes meiner Projekte hat eine include Datei mit dem Namen: PlatformDefinition.h
Die sieht etwas so aus, je nach Ziel OS:
#ifndef NTDDI_VERSION // Allow use of features W2K and later #define NTDDI_VERSION NTDDI_WIN2K #endif #ifndef WINVER // Allow use of features W2K and later #define WINVER 0x0500 #endif #ifndef _WIN32_WINNT // Allow use of features specific to W2K or later. #define _WIN32_WINNT 0x0500 #endif #ifndef _WIN32_IE // Allow use of features specific to IE 5.0 or later. #define _WIN32_IE 0x0500 #endif