#include<Windows.h>
//-------------------------------------------------------------------------
// 函数 : GetNtVersionNumbers
// 功能 : 调用RtlGetNtVersionNumbers获取系统版本信息
// 返回值 :
// 参数 : LOBYTE(LOWORD(dwVersion)) 主版本
// 参数 : HIBYTE(LOWORD(dwVersion)) 次版本
// 参数 : HIWORD(dwVersion) build号
// 附注 :
//-------------------------------------------------------------------------
DWORD GetNtVersionNumbers()
{
DWORD dwVersion = 0;
HMODULE hModNtdll= NULL;
TCHAR szBuffer[100];
DWORD dwMajorVer, dwMinorVer, dwBuildNumber;
if (hModNtdll= LoadLibrary(TEXT("ntdll.dll")))
{
typedef void (WINAPI *RtlGetNtVersionNumbers)(DWORD*,DWORD*, DWORD*);
RtlGetNtVersionNumbers pfRtlGetNtVersionNumbers;
pfRtlGetNtVersionNumbers = (RtlGetNtVersionNumbers)GetProcAddress(hModNtdll, "RtlGetNtVersionNumbers");
if (pfRtlGetNtVersionNumbers)
{
pfRtlGetNtVersionNumbers(&dwMajorVer, &dwMinorVer,&dwBuildNumber);
dwBuildNumber &= 0xffff;
}
dwVersion = MAKELONG(MAKEWORD(dwMajorVer,dwMinorVer),dwBuildNumber);
FreeLibrary(hModNtdll);
}
return dwVersion;
}