GetVersionEx function
最好不要用这个API因为微软已经抛弃掉了,原话是这么说的:
[GetVersionEx may be altered or unavailable for releases after Windows 8.1. Instead, use the Version Helper functions]
也就是从Win8.1开始不支持了,无论是Win8.1还是Win10,调用这个API返回的版本号是错误的。可以使用清单来解决这个问题,具体参考:https://msdn.microsoft.com/zh-cn/library/windows/desktop/dn481241(v=vs.85).aspx
RtlGetNtVersionNumbers
首先声明,这并不是一个文档化的函数,不包含在任何头文件中。需要从动态链接库ntdll.dll中加载。
下面给出实例:
bool getSysInfo(DWORD *dwMajorVersion,DWORD *dwMinorVersion,DWORD *dwBuildNumber) { //主版本号、次版本号、内部版本号
HMODULE hm;
if (hm = LoadLibrary(L"ntdll.dll")) {
typedef void (WINAPI *getver)(DWORD*, DWORD*, DWORD*);
getver gv