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

Fre*_*ing 3 c c++ windows sdk winapi

在线PSDK文档声明5.1(WinXP):

要编译使用此函数的应用程序,请将_WIN32_WINNT定义为0x0501或更高版本.有关更多信息,请参阅使用Windows标头.

要求

支持的最低客户端:Windows XP [仅限桌面应用程序]

支持的最低服务器:Windows Server 2003 [仅限桌面应用程序]


较旧的PSDK文档本地副本模糊地不同意上述内容,并尝试声明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 */
Run Code Online (Sandbox Code Playgroud)

我没有比WinXP SP3更老的东西来检查kernel32.dll导出目录,所以请告诉我什么是真正的最低支持版本,5.05.1

IIn*_*ble 6

所需的最低客户端是Windows 2000(0x0500).信息不匹配的原因是MSDN得到更新.根据更新是在Windows 2000的EOL之前还是之后发生,客户端要求列出Windows XP或Windows 2000.

如果有疑问,头文件是权威的.Windows 8.0 SDK仍然有#if(_WIN32_WINNT >= 0x0500)声明AttachConsole.


Han*_*ant 5

它是5.00,也就是Windows 2000.SDK标题总是正确的.当Microsoft删除对旧版本的支持时,MSDN文章会定期更新,因此它们将显示他们将接受支持电话呼叫的最新版本.对Windows 2000的扩展支持于2010年7月结束.它将于2014年4月以2015年7月的Server 2003 R2结束.

自己支持Windows 2000的智慧相当有限.如果您在要求中说明您将支持2000,那么当客户真正接受您的承诺并发现问题时,您将会非常头疼.确保您有可以启动它的计算机或VM.您还需要测试您的程序,以便提前满足此要求.

  • MSDN真的很烦人.我理解需要定期删除对旧版本的支持,但是改变已建立的文档以使它看起来像那些旧版本甚至根本不存在是完全错误的.没有充分的理由这样做. (3认同)
  • 嗯,在MSDN中记录Windows 1.03中支持CreateWindow()没有意义.降压停在某处.短语"支持的最低限度"毫无疑问,你可以在w2k机器上使用AttachConsole()但不支持**.很明显,他们不想与手机上的程序员打交道,他们坚持认为MSDN文章说他应该得到支持. (2认同)