c++ - 使应用程序在使用 Win7 功能的 WinXP/Vista 上运行

标签 c++ visual-studio winapi visual-c++ windows-7

我正在开发一个应用程序,该应用程序使用了一些在 WinXP 上不可用的高级 Windows 7 功能。 假设我想使用 ChangeWindowMessageFilterEx(或自 Win7 以来添加的任何其他调用),该应用程序编译并在 Win7 上运行良好。但是在 XP 上,甚至在应用程序启动之前,我都会收到“过程入口点 ChangeWindowMessageFilterEx 无法位于动态链接库 USER32.dll 中”。

有什么方法可以在不编译两个不同版本的情况下在 XP 上运行我的应用程序?

最佳答案

您可以通过使用 LoadLibrary 动态解析 ChangeWindowMessageFilterEx 来做到这一点和 GetProcAddress .如果 GetProcAddress 返回 NULL,您就不要调用此函数。

另见:
Checking for existence of Windows API Functions
Using Run-Time Dynamic Linking

关于c++ - 使应用程序在使用 Win7 功能的 WinXP/Vista 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6154101/

相关文章:

c++ - 如何使用 emacs 重构 C++ 源代码?

作为静态成员的 C++ 函数指针

c++ - 如何引用多维指针?

visual-studio-2010 - 没有为Visual Studio “SQLBuildTask”任务提供必需参数 “DatabaseName”错误的值

c# - P/调用错误或我做错了吗?

C++ char* 相对文件路径? (Qt)

c++ - 是否可以从 Visual Studio 调试器检测 GDI 泄漏?

C# 如何只追加文本文件的末尾和特定位置?

c# - 如何防止另一个应用程序在 C# 中移动 (MS Excel 2010)

c++ - 使用 Windows API 检索和设置文件详细信息?