• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

检查是否启用了DWM/Aero,并让该代码在2000/XP/Vista/7中以相同的二进制文件居住。

c/c++ 来源:enriquein 3次浏览

我知道标题没什么意义,主要是因为很难用一行来解释。所以这里的情况:检查是否启用了DWM/Aero,并让该代码在2000/XP/Vista/7中以相同的二进制文件居住。

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

我的问题是:是否有可能以某种方式设法解决这个问题?一个适用于所有操作系统版本的二进制文件,并包含DWM校验码此程序是使用MFC在Visual Studio 2008,Visual C++下编写的。


===========解决方案如下:

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

我想感谢ewanm89,因为他说的话引起了我的共鸣,并让我找到了实际答案。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)