MSDN 通常只将 Windows XP 列为“最低支持客户端”,可能是因为 Windows 2000 和更早版本已达到其生命周期的终点。但是,我们的一些用户在 Windows 2000 机器上使用我们的软件,如果可以避免的话,我不想破坏这种兼容性。我能否查明 Windows API 函数在 Windows 2000 中是否不可用(无需测试该系统上的每个函数)?
5 回答
“Platform SDK for Windows Server 2003 R2”中的帮助包含可追溯到 Windows 95 和 Windows NT 3.1 的平台信息。我最近下载了它,但目前在 microsoft.com 上找不到它。我不知道这是暂时的故障还是已经消失了。
Windows Server 2003 SP1 Platform SDK中的帮助可能类似,但我没有看过。
不幸的是,Microsoft 已从最新 MSDN 的“支持的操作系统”列表中删除了对早于 XP 的任何内容的引用。如果您仍然有 MSDN 的旧副本(我有 MSDN6a),那么他们仍然会将真正的“支持的客户端”列出回 Windows 9x。
从理论上讲#define NTDDI_VERSION NTDDI_WIN2K
,如果它依赖于较新的 API,您的程序将无法编译,但不幸的是,这并不总是有效。
您可以在 Win 2000 系统中使用Dependency Walker打开您的二进制文件,它会以红色显示缺少的功能。当然,前提是您静态链接到它们,这可能就足够了 - 至少对于初学者来说它是简单、容易和高效的。
MSDN 通常也会提到较旧的操作系统。请参阅:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms724211%28v=vs.85%29.aspx
如果它没有提到windows 2000,你必须测试它,它很可能不可用。您可以使用较旧的编译器(例如 Visual Studio 6)来查看其库中是否提供该功能。如果有这个功能,那么Windows 2000应该也有。