我想知道是否有机会检查我真正使用的 Windows 版本。类似于:如何使用预处理器指令检查操作系统?.
我尝试了 MSDN 的代码:
- http://msdn.microsoft.com/en-us/library/windows/desktop/ms724451(v=vs.85).aspx
- http://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx
但是他们中的任何一个都给了我很好的结果(例如:根据http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx我的代码应该打印 5.1 时我在 Windows XP 上,但它显示 5 ...)
有没有可靠的方法(我更喜欢预处理器指令的方法)来找出我正在使用的 Windows?
我的代码:
#include <windows.h>
#include <iostream>
int main()
{
OSVERSIONINFO osvi;
BOOL bIsWindowsXPorLater;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
// I HAD THIS, AND IT WAS WRONG! :<
std::cout << osvi.dwMajorVersion << "\n";
// CHANGED THE ABOVE LINE TO THE LINE BELOW AND IT IS OK NOW :D
std::cout << osvi.dwMajorVersion << "." << osvi.dwMinorVersion << "\n";
return 0;
}