在线PSDK文档状态5.1(WinXP):
要编译使用此函数的应用程序,请将_WIN32_WINNT定义为0x0501或更高版本。 有关更多信息,请参阅使用Windows头。
要求
最低支持的客户端 :Windows XP [仅限桌面应用]
最低支持的服务器 :Windows Server 2003 [仅适用于桌面应用程序]
老版本的PSDK doc与上面的模糊不清,并试图说明5.0(Win2k)或5.1:
要编译使用此函数的应用程序,请将_WIN32_WINNT定义为0x0500或更高版本。 有关更多信息,请参阅使用SDK头。
要求
客户端:需要Windows Vista或Windows XP。
服务器:需要Windows Server“Longhorn”或Windows Server 2003。
最后,PSDK标题(相当老)也主张Win2k:
#if(_WIN32_WINNT >= 0x0500) WINBASEAPI BOOL WINAPI AttachConsole( __in DWORD dwProcessId); #define ATTACH_PARENT_PROCESS ((DWORD)-1) #endif /* _WIN32_WINNT >= 0x0500 */
我没有任何比WinXP SP3更老的东西来检查kernel32.dll
导出目录,所以请赐教我什么是真正的最低支持的版本, 5.0
或5.1
?
最低要求的客户端是Windows 2000(0x0500)。 信息不匹配的原因是,MSDN得到更新。 根据更新是在Windows 2000的EOL之前还是之后发生,客户端要求列出Windows XP或Windows 2000。
如果有疑问,头文件是权威的。 Windows 8.0 SDK在AttachConsole
声明的附近仍有#if(_WIN32_WINNT >= 0x0500)
。
它是5.00,又名Windows 2000. SDK标头总是正确的。 MSDN文章定期更新,当微软放弃旧版本的支持,以便他们将显示他们将接受支持电话的最后一个版本。 对Windows 2000的扩展支持在2010年7月结束。它将于2014年4月结束XP,于2015年7月结束server 2003 R2。
自己支持Windows 2000的智慧相当有限。 如果你在你的要求中声明你会支持2000,那么当客户实际接受你的承诺并发现一个问题时,你将会相当头痛。 确保你有一台机器或虚拟机可以启动它。 你还需要测试你的程序,以便这个要求提前。