我正在开发一个应用程序,该应用程序使用了一些在 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/