[C/C++] Windows OS Version(System Version) Get API(윈도우 버전 불러오기 OSVERSIONINFO)
I.T/Programming 2011. 8. 29. 17:22반응형
Win Xp냐 Win 7이냐 Win Vista냐.. 등등에 따라 달라지는 로직을 분기를 가르기 위해
사용되는 함수 OSVERSIONINFO 구조체를 통해서 받아온다.
아래처럼 선언과 분기나눠지는 부분을 참고하자.
dwMajorVersion과 MinorVersion에 따라서 System Version이 결국 달라진다는 건데,
그에 대한 정보는 몇개만 주력으로 추려보면 아래와 같다.
수정할 것이 있으면 댓글달아주세욤~~
// OS version에 따라 저장할 경로가 달라진다.
// Major 4, Minor 0 : Win 95
// Major 4, Minor 10 : Win 98
// Major 4, Minor 90 : Win me
// Major 5, Minor 0 : win 2000
// Major 5, Minor 1 : win xp
// Major 5, Minor 2 : Win .Net
// Major 6, Minor 0 : vista
// Major 6, Minor 1 : win 7
이상!
사용되는 함수 OSVERSIONINFO 구조체를 통해서 받아온다.
아래처럼 선언과 분기나눠지는 부분을 참고하자.
// OS Version 받아오기 위한 선언문
OSVERSIONINFO osvi;
ZeroMemory (&osvi, sizeof (OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
if ( (osvi.dwMajorVersion >= 6 && osvi.dwMinorVersion >= 0) ) // Win Vista , WIn 7 이상
{
// Vista, Win7 이상인 경우의 로직 수행
OSVERSIONINFO osvi;
ZeroMemory (&osvi, sizeof (OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
if ( (osvi.dwMajorVersion >= 6 && osvi.dwMinorVersion >= 0) ) // Win Vista , WIn 7 이상
{
// Vista, Win7 이상인 경우의 로직 수행
}
else // xp 이하
{
// Vista, WIn7이 아닌 그 이하의 경우 로직수행
}
else // xp 이하
{
// Vista, WIn7이 아닌 그 이하의 경우 로직수행
}
dwMajorVersion과 MinorVersion에 따라서 System Version이 결국 달라진다는 건데,
그에 대한 정보는 몇개만 주력으로 추려보면 아래와 같다.
수정할 것이 있으면 댓글달아주세욤~~
// OS version에 따라 저장할 경로가 달라진다.
// Major 4, Minor 0 : Win 95
// Major 4, Minor 10 : Win 98
// Major 4, Minor 90 : Win me
// Major 5, Minor 0 : win 2000
// Major 5, Minor 1 : win xp
// Major 5, Minor 2 : Win .Net
// Major 6, Minor 0 : vista
// Major 6, Minor 1 : win 7
이상!
반응형