首先声明,我对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来搞定
設備上下文、設備上下文句柄、操作系統上下文……微軟中國都™是些什麼垃圾翻譯團隊
微软的专业名词基本都是拿他家bing机器翻译的……特别是msdn,简直和bi了狗一样