【发布时间】:2017-11-10 15:32:03
【问题描述】:
在我的开发机器上运行 Windows 10。试图让操作系统版本返回 10 的主要版本。Tried this 并通过System::Environment::OSVersion->VersionString 尝试了环境变量。两者都返回Microsoft Windows NT 6.2.9200。在 Windows 7 机器上测试可执行文件,我得到 6.1.*(正确)。
在 Powershell 中运行,我得到了正确的结果:
PS Z:\> [System.Environment]::OSVersion.Version
Major Minor Build Revision
----- ----- ----- --------
10 0 14393 0
我在 Visual Studio 中使用相同的环境变量逻辑编写了一个测试 C++ 程序...
#include <Windows.h>
#include <iostream>
using namespace std;
int main(int argc, char **argv, char** envp) {
printf("Current compiler version is ... %d\n", _MSC_VER);
printf("Current compiler full version is ... %d\n", _MSC_FULL_VER);
printf("Current OSVersion is ... %s\n\n", System::Environment::OSVersion->VersionString);
char** env;
for (env = envp; *env != 0; env++)
{
char* thisEnv = *env;
printf("%s\n", thisEnv);
}
cin.ignore();
cin.ignore();
return 0;
}
结果(我不会打印除一个以外的所有环境变量)...
Current compiler version is ... 1900
Current compiler full version is ... 190024215
Current OSVersion is ... Microsoft Windows NT 6.2.9200.0
...
OS=Windows_NT
以上测试程序配置目标平台为10.0.14393.0。
为什么它认为我的操作系统是 Windows 8?
规格:
- Windows 10
- 版本 10.0.14393 内部版本 14393
- Visual Studio 2015(C++ 项目)
- 目标平台 10.0.14393.0
- Powershell 5.1 版
【问题讨论】:
标签: c++ visual-studio powershell visual-c++ windows-10