您的位置:首页 > 其它

windows API获取系统版本信息

2012-11-25 11:58 218 查看
(1)基本概念

Windows对系统版本的表示分为:主版本号、次版本号、构建号、sp主版本号、sp次版本号。

(2)相关API

BOOL GetVersionEx(
    LPOSVERSION lpVersionInfo;  //输入输出参数
)


OSVERSIONINFOEX 结构

typedef struct _OSVERSIONINFOEX {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;   
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[128];
WORD  wServicePackMajor;
WORD  wServicePackMinor;
WORD  wSuiteMask;
BYTE  wProductType;
BYTE  wReserved;
} OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX;


(3)相关测试实例与错误报告

int main()
{
OSVERSIONINFOEX osver;
osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
//获取版本信息
if (! GetVersionEx((LPOSVERSIONINFOA)&osver))
{
cout<<"Error:"<<GetLastError()<<endl;
}
     //打印版本信息
cout<<"System info:"<<endl;
cout<<"Version:"<<osver.dwMajorVersion<<"."<<osver.dwMinorVersion
<<" Build "<<osver.dwBuildNumber
<<" Service Pack "<<osver.wServicePackMajor<<"."
<<osver.wServicePackMinor<<endl;
system("pause");
}


@problem:

错误 1 error C2664: “GetVersionExA”: 不能将参数 1 从“OSVERSIONINFOEX *”转换为“LPOSVERSIONINFOA”

解决办法:

强制转换:GetVersionEx((LPOSVERSIONINFOA)&osver)

@display

运行结果:

System info:

Version:6.1 Build 7601 Service Pack 1.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: