Detecting Windows Operating System

Hi to all, I am trying to detect which Windows Operating System is running on the machine, eg Windows XP, Windows 2003 etc. I have the following code but does not compile:-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const char* version;

OSVERSIONINFO osvi;

osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

GetVersionEx (&osvi);

if ((osvi.dwMajorVersion ==5)&&(osvi.dwMinorVersion==1))
sprintf ("Windows XP");
else if ((osvi.dwMajorVersion ==5)&&(osvi.dwMinorVersion==0))
sprintf ("Windows 2000");
else if ((osvi.dwMajorVersion ==4)&&(osvi.dwMinorVersion==0))
sprintf ("Windows NT 4.0");
else if ((osvi.dwMajorVersion ==3)&&(osvi.dwMinorVersion==51))
sprintf ("Windows NT 3.51");
else if ((osvi.dwMajorVersion ==4)&&(osvi.dwMinorVersion==90))
sprintf ("Windows ME");
else if ((osvi.dwMajorVersion ==4)&&(osvi.dwMinorVersion==10))
sprintf ("Windows 98");
else if((osvi.dwMajorVersion ==4)&&(osvi.dwMinorVersion==0))
sprintf ("Windows 95");


Line 5 error: error C2143: syntax error : missing ';' before '.'
Line 5 error: error C4430: missing type specifier - int assumed.
Line 5 error:error C2371: 'osvi' : redefinition; different basic types

I am also getting errors on the "if" and "else" statements.

Any feedback would be greatly appreciated.
http://www.codeproject.com/KB/winsdk/osdetect.aspx
Just googling gave me this link.
Avoid codeproject.
Just use the original MSDN sample
Thanks for your reply guys much appreciated got it to work :D Thanks again
Topic archived. No new replies allowed.