首先声明,我对win32了解不是很深,如有纰漏欢迎指正。

微软从Windows7开始在任务管理器中加入了更YD的列,由于语言的差异,翻译过来的文字总是让人不明所以。所谓操作系统上下文就是Operating System Context,还是英文比较好理解。

正因为这样在google里搜索操作系统上下文出来的结果很奇葩。所以按英文搜索,首先找到的是这个:http://support.microsoft.com/kb/978637/en-us机器翻译

 

微软的渣翻译啊这都什么标题啊……

 

大致看了一下,和兼容性有关系,具体看到了介绍Application Manifest http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx机器翻译】这个链接。这个Application Manifest用过VS的应该都有所了解的。然后我好像明白了……

Windows 7 introduces a new section in the application manifest called “Compatibility.” This section helps Windows determine the versions of Windows that an application was designed to target, and enables Windows to provide the behavior that the application expects based on the version of Windows that the application targeted.

……

Applications without a Compatibility section in their manifest will receive Windows Vista behavior by default on Windows 7 and future Windows versions.

为了验证第二句话,用gcc编译了一个helloworld,看到上下文是Windows Vista。

哦怪不得之前网站统计的时候把我的傲游的UA认成vista了。

【魂淡这是逼着人用VS么……

貌似Win8里面已经解决了这个问题,因为那个补丁好像没有NT6.2版本,而且现在傲游的UA也正常了……

【2013-03-08更新:后来发现windows下的ELF格式程序似乎大家都在努力遵守,包括win下的gcc,pyinstaller都可以通过添加manifest来搞定