Forum Clubic

Version os fausse en c

Bonjour,

J’ai besoin de récuperer la version de l’os sur lequel mon appli est lancée, aussi j’utilise le code
sur ce site

je suis sur seven SP1 ey le script me sort 5 soit XP (??)

un avis ?

merci =)

Et GetVersionEx te renvoie quoi? ( msdn.microsoft.com… )

me renvoie 1

J’entendais pas le code retour, plutôt le pointeur passé à la fonction :slight_smile:

int main(void) {
    OSVERSIONINFO osvi;
    BOOL bIsWindowsXPorLater;

    ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

    GetVersionEx(&osvi);

  printf("Majeure %d Mineure %d\n", osvi.dwMajorVersion, osvi.dwMinorVersion)
}

Si ça ne renvoie pas 6.1, alors ton erreur est là.

major = 6
minor = 1

mais bizarre, quand j’affiche le resultat dans ma fenetre de l’appli :

OSVERSIONINFO osvi;
BOOL bIsWindowsXPorLater;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
TextOut(GetDC(hWnd),0,0,itoa(osvi.dwMajorVersion,buffer2,10),strlen(buffer2)+3);

ca m’affiche 5 et non 6

cela peut-il venir de la declaration de la fenetre? :

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
   LPSTR lpCmdLine, int nCmdShow)
{

le me demande s’il ne s’agit pas d’une option du projet lié à la compilation,
quand je lance le main.c seul, j’ai bien 6 et je lance le projet j’ai 5

J’ai beau trafiquer les options du compilateur et du projet, j’ai toujours 5, très étrange !!

Et en mode debug ?
Et si tu recopie mon printf juste après le GetVersionEx ?

Par ailleurs, je pense que c’est lié à une DLL qui renvoie la version pour laquelle elle a été compilée. ça ne devrait pas déprendre du compilateur et de comment ton projet est configuré, sauf si tu as une ancienne version de cette DLL ou que le compilateur s’en serve.

T’aurais pas configuré des options de compatibilité pour lancer ton programme ?

(me souvient plus si c’est possible dans Visual Studio, vu que ça fait 2 ans que je n’y ai pas touché :))

C’est exactement ca !
J’avais mis la comptabilité XP car c’est une appli que j’avais développé quand j’etais sur cet OS,
et que j’ai repris sous peu sur seven et j’avais mis la compatibilité XP ^^

Merci à toi =)

De rien. Ce qui est mieux, c’est que j’ai pas Visual Studio, et que je cause pas terrible le C/C++ à la sauce microsoft (avec cette notation hongroise mal comprise mais reprise :/)