gpt4 book ai didi

c++ - 检查是否启用了 DWM/Aero,并让该代码存在于 2000/XP/Vista/7 的相同二进制文件中

转载 作者:行者123 更新时间:2023-11-30 03:12:15 24 4
gpt4 key购买 nike

我知道这个标题没什么意义,主要是因为很难用一行来解释。所以情况是这样的:

我有一个针对 Windows 2000 和更新版本的二进制程序。现在,我继续添加一些代码来检查用户是否在 Vista/7 下运行,如果是,则检查是否启用了 Aero/DWM。基于此,我将禁用一些与该特定平台无关的内容,并启用一些其他功能。我的主要问题是,为了从 Visual C++ 2008 调用 DwmIsCompositionEnabled,我必须添加 dwmapi.lib 文件并针对它进行编译。在 Vista 或 7 以外的任何系统中运行二进制文件都会出现“无法定位组件。应用程序无法启动,因为未找到 dwmapi.dll”错误。当然,这是预期会发生的,因为 DWM 是新的,不适用于旧平台。

我的问题是:我是否有可能以某种方式设法实现这一目标?一个适用于所有操作系统版本的二进制文件并包含该 DWM 检查代码?本程序是在Visual Studio 2008、Visual C++下使用MFC编写的。

最佳答案

原来我可以告诉链接器延迟加载 dwmapi.dll。

我要感谢 ewanm89,因为他说的话引起了我的共鸣,并引导我找到了真正的答案。

关于c++ - 检查是否启用了 DWM/Aero,并让该代码存在于 2000/XP/Vista/7 的相同二进制文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1317295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com