|
发表于 2015-9-2 16:39:04
|
显示全部楼层
分享下,自己的
/*
* Parameter(s) : dwMajorVer 主版本
dwMinorVer 次版本
dwBuildNumber build号
* Description : 调用RtlGetNtVersionNumbers获取系统版本信息
* Return : TRUE 成功
FALSE 失败
*/
BOOL GetNtVersionNumbers( DWORD& dwMajorVer, DWORD& dwMinorVer, DWORD& dwBuildNumber )
{
BOOL bRet= FALSE;
HMODULE hModNtdll= NULL;
if (hModNtdll= ::LoadLibraryW(L"ntdll.dll"))
{
typedef void (WINAPI *pfRTLGETNTVERSIONNUMBERS)(DWORD*,DWORD*, DWORD*);
pfRTLGETNTVERSIONNUMBERS pfRtlGetNtVersionNumbers;
pfRtlGetNtVersionNumbers = (pfRTLGETNTVERSIONNUMBERS)::GetProcAddress(hModNtdll, "RtlGetNtVersionNumbers");
if (pfRtlGetNtVersionNumbers)
{
pfRtlGetNtVersionNumbers(&dwMajorVer, &dwMinorVer,&dwBuildNumber);
dwBuildNumber &= 0x0ffff;
bRet = TRUE;
}
::FreeLibrary(hModNtdll);
hModNtdll = NULL;
}
return bRet;
}
|
|