AttachConsole的最低版本要求是什么?

在线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.05.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,那么当客户实际接受你的承诺并发现一个问题时,你将会相当头痛。 确保你有一台机器或虚拟机可以启动它。 你还需要测试你的程序,以便这个要求提前。