0
我想知道是否有機會檢查我真正使用的Windows版本。類似於:How do I check OS with a preprocessor directive?。如何使用預處理器指令檢查操作系統版本(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 ...)
是否有任何可靠的方法(我寧願預處理器指令的方式)f指出我正在使用哪個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;
}
這將是一個有點難以建立與預處理指令。當您需要更新的功能時,您必須告訴標題有一個原因。 – chris
@chris:好的,沒有預處理指令 - 有可能嗎? – mazix
我能說的最好的就是'GetVersion'的東西。我不確定你爲什麼會得到錯誤的答案。 – chris