preprocessor --> os abfragen



  • weiss jemand ob es die möglichkeit gibt, mittels #ifdef das os abzufragen ?

    irgendwie sowas wie:

    #ifdef WIN98
    // do someting
    #endif
    
    #ifdef WIN2000
    // do something else
    #endif
    

    rocknix ///



  • Das hängt vom complier ab.
    Wenn du vor hast das für ne lib oder ähnliches zu verwenden kannst das durchaus so machen, muss halt in der Header stehen, das ein #define für OS in seinem prog haben muss, wenn er deine lib verwendet. VC++ "sollte" das z.B. von selbst in der stdafx.h machen.
    kleiner auszug:

    #ifndef WINVER              // Lassen Sie die Verwendung von Features spezifisch für Windows 95 und Windows NT 4 oder später zu.
    #define WINVER 0x0400       // Ändern Sie den entsprechenden Wert, um auf Windows 98 und mindestens Windows 2000 abzuzielen.
    #endif
    
    #ifndef _WIN32_WINNT        // Lassen Sie die Verwendung von Features spezifisch für Windows NT 4 oder später zu.
    #define _WIN32_WINNT 0x0400 // Ändern Sie den entsprechenden Wert, um auf Windows 98 und mindestens Windows 2000 abzuzielen.
    #endif                      
    
    #ifndef _WIN32_WINDOWS      // Lassen Sie die Verwendung von Features spezifisch für Windows 98 oder später zu.
    #define _WIN32_WINDOWS 0x0410 // Ändern Sie den entsprechenden Wert, um auf mindestens Windows Me abzuzielen.
    #endif
    
    #ifndef _WIN32_IE           // Lassen Sie die Verwendung von Features spezifisch für IE 4.0 oder später zu.
    #define _WIN32_IE 0x0400    // Ändern Sie den entsprechenden Wert, um auf mindestens IE 5.0 abzuzielen.
    #endif
    

    Verlass dich allerdings nie 100%ig darauf das die Dinger auch wirklich drin sind *g*



  • btw. Wenn du ganz sicher sein musst auf welchen OS du bist (manche Funktionen mag 98&co net..) nimm GetVersionEx..


Anmelden zum Antworten