在开发过程中中,把开发过程中比较好的内容片段备份一次,下边内容段是关于c++获得当前windows系统的版本号的内容,应该能对码农们也有好处。
<代码> # include“InitWindowsVersion.h” 无 WIN_VER_DETAIL GetWindowsVersion () { UNICODE_STRING ustrFuncName={0}; RTL_OSVERSIONINFOEXW osverinfo={sizeof (osverinfo)}; PFN_RtlGetVersion pfnRtlGetVersion=零; 如果(WinVersion) 返回WinVersion; RtlInitUnicodeString(及ustrFuncName左“RtlGetVersion”); 如果(pfnRtlGetVersion) { pfnRtlGetVersion ((PRTL_OSVERSIONINFOW), osverinfo); } 其他的 { PsGetVersion(及osverinfo。dwMajorVersion及osverinfo。dwMinorVersion及osverinfo。dwBuildNumber, NULL); } 如果(osverinfo。dwMajorVersion==5,,osverinfo。dwMinorVersion==0) { WinVersion=WINDOWS_VERSION_2K; } else if (osverinfo。dwMajorVersion==5,,osverinfo。dwMinorVersion==1) { WinVersion=WINDOWS_VERSION_XP; } else if (osverinfo。dwMajorVersion==5,,osverinfo。dwMinorVersion==2) { 如果(osverinfo.wServicePackMajor==0) { WinVersion=WINDOWS_VERSION_2K3; } 其他的 { WinVersion=WINDOWS_VERSION_2K3_SP1_SP2; } } else if (osverinfo。dwMajorVersion==6,,osverinfo。dwMinorVersion==0) { WinVersion=WINDOWS_VERSION_2K3_SP1_SP2; } else if (osverinfo。dwMajorVersion==6,,osverinfo。dwMinorVersion==1) { WinVersion=WINDOWS_VERSION_7; } 返回WinVersion; } InitWindowsVersion.h 的ifndef _SYSTEM_H #定义_SYSTEM_H # include“ntifs.h” typedef enum WIN_VER_DETAIL { WINDOWS_VERSION_2K, WINDOWS_VERSION_XP, WINDOWS_VERSION_2K3, WINDOWS_VERSION_2K3_SP1_SP2, WINDOWS_VERSION_VISTA_2008, WINDOWS_VERSION_7 }WIN_VER_DETAIL; WIN_VER_DETAIL WinVersion; WIN_VER_DETAIL GetWindowsVersion (); # endif 代码>