【发布时间】:2012-01-26 18:25:25
【问题描述】:
我想构建一个应用程序,它在 Windows Vista 和更新版本(支持)上调用 CancelIoEx,并在 Windows XP(不支持)上执行其他操作。
如果我在 Windows 7 下编译应用程序但在 Windows XP 下运行它会发生什么?运行时会发生什么?我会收到某种加载错误吗?
如何让我的应用程序根据运行时使用的操作系统选择一个或另一个代码路径(避免加载错误)?请提供示例代码。
更新:请注意,DLL 存在于 Windows XP 上,但该函数不存在。
【问题讨论】:
-
Delay Loading DLLs的可能重复
-
@GregHewgill,在这种情况下延迟加载不合适(动态加载是)。除此之外,我认为这不是完全重复的,因为没有涵盖 #1,也不清楚如何检测 #2 中运行的是哪个操作系统。
-
检测操作系统的方式是不是检测具体的操作系统,而是简单的尝试加载DLL。您需要功能检测,而不是版本检测。该功能在此处的文档中进行了说明:msdn.microsoft.com/en-us/library/151kt790.aspx
-
对不起,我一定误读了你的问题。我已经提供了一个应该通过道歉来起作用的答案。 :)
标签: windows backwards-compatibility