J'ai vu un code qui utilisait les api pour recuperer la version de windows, je me suis dit que la méthode utilisant les variables globales _osver, _winmajor, _winminor était plus simple donc je la poste.
Source / Exemple :
#include <windows.h>
#include "resource.h"
#include "FncASM.h"
HWND hdlg;
void ObtVersionWin()
{
char szBuff[128], *c;
c = bnstrcpy(szBuff, "Windows ");
switch (_winmajor) {
case 4:
switch (_winminor) {
case 0: *((DWORD *)c) = 0x203539; c += 3; break; //"95 "
case 10: *((DWORD *)c) = 0x203839; c += 3; break; //"98 "
case 90: *((DWORD *)c) = 0x204D45; c += 3; //"ME "
}
break;
case 5:
switch (_winminor) {
case 0: *((DWORD *)c) = 0x204B32; c += 3; break; //"2K "
case 1: *((DWORD *)c) = 0x205058; c += 3; break; //"XP "
case 2: *((DWORD *)c) = 0x33303032; c += 4; *c++ = ' '; //"2003 "
}
}
c = bnstrcpy(c, "version build ");
c = bnultoa(_osver, c);
SetDlgItemText(hdlg, IDST_VER, szBuff);
}
BOOL CALLBACK DlgProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
switch (message) {
case WM_INITDIALOG:
SetClassLong(hwnd, GCL_HICON, (long)LoadIcon(0, IDI_APPLICATION));
hdlg = hwnd;
ObtVersionWin();
case WM_COMMAND:
if (wparam == IDOK || wparam == IDCANCEL) EndDialog(hwnd, 0);
return 0;
default:
return 0;
}
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE p, LPSTR q, int r)
{
DialogBoxParam(hInstance, (LPCTSTR)IDD_VERWIN, 0, DlgProc, 0);
return 0;
}
16 août 2004 à 13:52
16 août 2004 à 13:45
16 août 2004 à 13:33
16 août 2004 à 11:00
> un bel exemple de mélange encore, ici c'est du C et de l'asm, pas de C++...
le problème est que en général qq1 qui fourre un peu d'asm dans son code sait ce qu'il fait ... alors que qq1 qui melange du C et du C++ ne s'en rend pas forcement compte ...
(exemples : incompatibilité des flux, de la gestion mémoire ...)
15 août 2004 à 22:30
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.