Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi 在Windows XP下运行时,GetVersionEx在什么合法的情况下可能会生成dwMajorVersion==7?_Winapi_Version - Fatal编程技术网

Winapi 在Windows XP下运行时,GetVersionEx在什么合法的情况下可能会生成dwMajorVersion==7?

Winapi 在Windows XP下运行时,GetVersionEx在什么合法的情况下可能会生成dwMajorVersion==7?,winapi,version,Winapi,Version,当GetVersionEx在Windows XP上成功返回时,它生成的结构的dwMajorVersion字段的值应为5。在什么合法的情况下(在Windows XP下运行),它的值可能是7?在合法的情况下不是 但是:来自Microsoft的通常会更改您测试的应用程序的这些字段,以确保您的应用程序在Windows 7的未来版本上正确运行。在Windows 7的XP模式下运行它?@tommieb75:Windows 7实际上是Windows 6.1版,因此dwmajorvision=6。我不知道Get

当GetVersionEx在Windows XP上成功返回时,它生成的结构的dwMajorVersion字段的值应为5。在什么合法的情况下(在Windows XP下运行),它的值可能是7?

在合法的情况下不是


但是:来自Microsoft的通常会更改您测试的应用程序的这些字段,以确保您的应用程序在Windows 7的未来版本上正确运行。

在Windows 7的XP模式下运行它?@tommieb75:Windows 7实际上是Windows 6.1版,因此dwmajorvision=6。我不知道GetVersionEx在兼容模式下运行时的行为。@James:有趣的…我从来都不知道…看起来MS的版本不同步了…:P“如果兼容模式有效,GetVersionEx函数会报告其标识的操作系统,该操作系统可能不是已安装的操作系统”()。因此,在Windows7的XP模式下运行时,我希望GetVersionEx返回5的主要版本。一个简单的解释是GetVersionEx()返回FALSE。你在检查吗?我确实安装了AppVerifier,并且它被配置为接触有问题的进程,所以我打赌这就是问题所在。我们可能应该检查特定的功能,而不是调用GetVersionEx(这是Microsoft想要的,我想这也是为什么AppVerifier会使用GetVersionEx),但我还不清楚在手头的案例中是否可以这样做。是的。是的。我关闭了HighVersionLie,GetVersionEx又开始有意义了。你太棒了。AppVerifier与GetVersionEx冲突的原因是为了防止应用程序错误地检查操作系统版本。很多应用程序都犯了这个错误,然后只在XP上工作,但拒绝在Vista上工作。对。一旦我知道要找什么,我在网上的一百个地方都看到了。具有讽刺意味的是,微软正试图阻止人们错误地拒绝在新系统上运行,但这阻止了我们的代码在旧系统上做正确的事情。我们不是在寻找新的功能,而是在不同的系统上寻找不同的功能。在XP上存在一组功能,在Vista上存在另一组功能,在Windows 7上不存在类似的功能。(这听起来像是一个琐碎的谜题吗?欢迎来到我的世界。)我提出了一个无法启用HighVersionLie的错误。