Comment savoir sous quel OS on tourne ?? [C++] - Programmation
Marsh Posté le 15-11-2001 à 17:37:21
a la compilation ?
des gros
#ifdef WIN32
devrait faire l'affaire (ou _WIN32 je sais pu trop)
y'a aussi des WINVER et tout ca, regarde dans windows.h c la que ca doit trainer
Marsh Posté le 15-11-2001 à 17:37:37
tu veux pouvoir faire la différence entre les différentes versions de windows? ou encore plus (...???)
Marsh Posté le 15-11-2001 à 17:45:13
ouaip c'est entre les versions, 98, 2K, etc...
Parce que les cle dans la base de registre ne sont pas les memes des fois et ca me pose un pb
Marsh Posté le 15-11-2001 à 17:48:20
#define W31 "Windows 3.1"
#define W95 "Windows 95"
#define W98 "Windows 98"
#define WME "Windows ME"
#define WNT4 "Windows NT 4.0"
#define W2K "Windows 2000"
#if defined(WIN32)
OSVERSIONINFO winfo;
winfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&winfo);
if(winfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
{
if(winfo.dwMajorVersion>=5)
return W2K;
else
return WNT4;
}
else
if(winfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS
)
{
if(winfo.dwMinorVersion<10)
return W95;
else
if(winfo.dwMinorVersion<90)
return W98;
else
return WME;
}
else
if(winfo.dwPlatformId==VER_PLATFORM_WIN32s)
{
return W31;
}
return "?";
#endif
Marsh Posté le 15-11-2001 à 18:05:26
Meci pour le code
En fait mon pb c'est que je veux creer des shortcuts dans le menu demarrer, mais la cle n'est pas dans le meme path sous 2k et 98 (Bravo M$!!), le seul moyen que je trouve c'est de verifier l'OS, mais bon c'est un peu plus degueu...
Marsh Posté le 15-11-2001 à 18:07:43
if(winfo.dwMinorVersion<10)
return W95;
else
if(winfo.dwMinorVersion<90)
return W98;
else
return WME;
PS: Dans le code la y a pas un pb ?
Marsh Posté le 15-11-2001 à 18:13:56
Godbout a écrit a écrit : if(winfo.dwMinorVersion<10) return W95; else if(winfo.dwMinorVersion<90) return W98; else return WME; PS: Dans le code la y a pas un pb ? |
ah ouais, tiens... en fait, j'ai jamais essayé sous autre chose que NT ou 2000, alors je ne m'en suis même pas rendu compte
Marsh Posté le 15-11-2001 à 19:05:06
Et comment je peux connaitre alors les differents intervalles que je dois tester ?
Au fait c'est une macro ca ?
Comment je recupere la valeur renvoyee par return ? (dsl dans une macro je capte pas)
Marsh Posté le 15-11-2001 à 19:22:27
C'est bon y a l'air d'avoir des infos dans GetVerion, j'avais pas vu
Par contre la macro je capte toujours pas
Marsh Posté le 15-11-2001 à 19:30:33
Code :
|
source: MSDN News
Marsh Posté le 15-11-2001 à 17:25:36
hein ?