2010-03-05 50 views
0

GetVersionEx在Windows XP上成功返回時,它生成的結構的dwMajorVersion字段應該具有值5.在什麼合法的情況下(在Windows XP下運行)可能具有值7?在Windows XP下運行時,GetVersionEx可能產生dwMajorVersion == 7的合法情況下?

+0

在Windows 7的XP模式下運行它? – t0mm13b 2010-03-05 01:50:12

+1

@ tommieb75:Windows 7實際上是Windows版本6.1,所以dwMajorVersion = 6。關於我的頭頂,我不知道GetVersionEx在兼容模式下運行時的行爲。 – 2010-03-05 01:53:19

+0

@James:有趣......從來不知道......看起來MS的版本在那裏不同步......:P – t0mm13b 2010-03-05 01:55:29

回答

2

不在合法的情況下。

但是:Microsoft的Appverifier通常會更改測試應用程序的這些字段,以確保您的應用程序能夠在未來版本的Windows上正常工作。

+0

我確實安裝了AppVerifier,並且配置爲觸及有問題的流程,所以我敢打賭這是問題所在。有可能我們應該檢查特定的功能,而不是調用GetVersionEx(這是微軟需要的,我猜爲什麼,AppVerifier使用GetVersionEx),但目前還不清楚在案例中是否可以這樣做。 – 2010-03-05 17:27:45

+0

是的。 AppVerifier是它。我關掉了HighVersionLie,GetVersionEx又開始合理了。你搖滾。 – 2010-03-05 17:36:39

+0

AppVerifier與GetVersionEx混淆的原因是爲了防止應用程序檢查操作系統版本錯誤。許多應用程序出錯,然後只能在例如XP,但拒絕在Vista上完成這項工作。 – Stefan 2010-03-06 09:02:48

相關問題