Détection Windows 32bits/64bits
Bonjour.
(précision : j'ai très peu d'expérience en C++)
Je bosse sur un petit programme et lors du premier lancement de celui-ci, il recueille un certain nombre d'informations sur la machine de l'utilisateur (Version de Windows, Matériel...). J'étais en train d'écrire un petit code sur la détection de la version de Windows. Je découvre en même temps les fonctions de windows.h et l'aide MSDN.
Au début, pour la détection de la version de Windows, j'étais parti sur GetVersionEx() qui renvera toutes les informations dans une structure OSVERSIONINFOEX (plusieurs exemples existent sur le web). Et ensuite avec des "if" et divers tests on finit par obtenir le nom de la version. J'ai cependant quelques questions :
1) Quelle est la différence entre GetVersionEx() et GetVersion() et en général entre les "Ex" et les "sans Ex" ? Laquelle vaut-il mieux utiliser et pourquoi ?
2) En cherchant un peu j'ai trouvé une fonction IsOs() qui à première vue permettrait de faire le travail plus rapidement qu'avec GetVersionEx(). Seulement aucun des exemples trouvés sur le net n'utilisent cette fonction alors c'est quoi le hic ?
3) Ah oui y'a aussi un truc qui me "dérange" : dans la doc de IsOs() on lit "Minimum supported client : Windows 2000" alors que c'est sensé pouvoir tester "OS_WIN98_GOLD : The program is running on Windows 98 exactly." Y'a pas comme un problème ? Comment le programme pourrait être en train de tourner sur Windows 98 si la fonction n'est utilisable qu'à partir de Windows 2000 :? ?
Et enfin :
4) N'y aurait-il pas une petite fonction qui me dise directement si le système est 32 ou 64 bits ? (j'ai pas trouvé)
Voilà, merci beaucoup :ccool:
EDIT : Ah oui une dernière question : que se passera-t-il si un utilisateur sous Windows 2000 lance mon programme et que celui-ci contient une fonction indiqué sur MSDN comme : "Minimum supported client : Windows XP" : le programme plantera lamentablement ou la fonction ne sera pas exécutée ?