c++ - 如果 Windows 资源管理器正在运行,Dir​​ect3D 应用程序运行良好,否则速度会非常慢

标签 c++ windows-xp kiosk direct3d9

如果我们完全启动 Windows,然后启动它,我们的 Direct3D9 应用程序将完美运行。 但是,如果我们调整 Windows 的启动过程,使资源管理器不运行,而只启动 Windows 和我们的应用程序,我们的应用程序会非常慢。 CPU 消耗达到 50%,即使在空闲时也是如此(通常接近 0)。

这可以通过启动任务管理器、启动资源管理器并重新启动我们的应用程序来解决。但这是 Not Acceptable ;我们的应用程序必须在没有资源管理器的情况下运行。

这可能是 Direct3D 的东西吗?我们的应用程序是全屏的,Windows 版本是 XP SP3,所有最新更新,Direct3D 版本是 9.0.c。如果这与 Direct3D 无关,我该如何调试它?

最佳答案

解决了。转到 Control Panel->UserAccounts->Change the way users log on or off 并看到“使用欢迎屏幕”已被选中。

取消选中即可解决。似乎当欢迎屏幕处于事件状态时,由于它使用与桌面不同的分辨率,因此会发生冲突。而且我没查,好像是这个导致硬件加速暂时不可用,所以选择了软件渲染,杀CPU。

关于c++ - 如果 Windows 资源管理器正在运行,Dir​​ect3D 应用程序运行良好,否则速度会非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808254/

相关文章:

c++ - 转换为复合赋值运算符?

Python 脚本在 Linux 上工作正常,在 Windows 上,导致 WindowsError : [Error 5] Access is denied

c++ - windows xp 修改时区

android - Kiosk 模式应用程序的退出按钮

google-chrome - 禁用 Chrome 捏缩放以在信息亭中使用

c++ - 防止第三方使用我的整个命名空间

c++ - [C++]传节点索引好还是传节点本身好?哪个更快?

c++ - lua - 类析构函数的延迟调用

c++ - Windows XP 与 Vista/7 上的 MS Crypto API 行为