C++ AttachConsole的实际最低版本要求是什么?
在线PSDK文档说明5.1(WinXP): 要编译使用此函数的应用程序,请定义_WIN32\u WINNT 与0x0501或更高版本相同。有关详细信息,请参见使用Windows 标题 要求 支持的最低客户端数:Windows XP[仅限桌面应用程序] 支持的最低服务器数:Windows server 2003[仅限桌面应用程序]C++ AttachConsole的实际最低版本要求是什么?,c++,c,windows,winapi,sdk,C++,C,Windows,Winapi,Sdk,在线PSDK文档说明5.1(WinXP): 要编译使用此函数的应用程序,请定义_WIN32\u WINNT 与0x0501或更高版本相同。有关详细信息,请参见使用Windows 标题 要求 支持的最低客户端数:Windows XP[仅限桌面应用程序] 支持的最低服务器数:Windows server 2003[仅限桌面应用程序] PSDK文档的较旧本地副本模糊地不同意上述内容,并试图声明5.0(Win2k)或5.1: 要编译使用此函数的应用程序,请定义_WIN32\u WINNT 与0x050
PSDK文档的较旧本地副本模糊地不同意上述内容,并试图声明5.0(Win2k)或5.1: 要编译使用此函数的应用程序,请定义_WIN32\u 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
导出目录,因此请告诉我real、5.0
或5.1
?所需的最低客户端是Windows 2000(0x0500)。信息不匹配的原因是MSDN得到更新。根据更新是在Windows 2000下线之前还是之后进行的,客户端要求列出Windows XP或Windows 2000
如果有疑问,头文件是权威的。Windows 8.0 SDK的
#if(_WIN32_WINNT>=0x0500)
在附件控制台
的声明周围仍然有#if(_WIN32_WINNT>=0x0500)
它是5.00,也称为Windows 2000。SDK头总是正确的。当Microsoft放弃对旧版本的支持时,MSDN文章会定期更新,以便显示最后一个版本,并接受支持电话。对Windows 2000的扩展支持于2010年7月结束。XP将于2014年4月结束,Server2003R2将于2015年7月结束
自己支持Windows 2000的智慧相当有限。如果您在需求中声明将支持2000,当客户实际接受您的承诺并发现问题时,您将相当头疼。确保你有一台机器或虚拟机可以启动它。您还需要测试您的程序,以便尽早满足此要求。MSDN这样做真让人恼火。我理解有必要定期取消对旧版本的支持,但修改已建立的文档,使其看起来好像那些旧版本根本不存在,这完全是错误的。没有很好的理由这么做。嗯,MSDN记录Windows 1.03支持CreateWindow()没有任何意义。责任在某处停止。短语“Minimum supported”毫无疑问,您可以在w2k机器上使用AttachConsole(),但它不受支持。显然,他们不想在电话里与坚持MSDN文章说他值得支持的程序员打交道。