我知道这本质上是重复的,但是this从未得到回答。我想提一下,我有followed the tutorial可以将SFML与Visual Studio一起使用,并且我正在运行带有64位SFML的64位项目。该窗口会立即加载几次,现在在新的构建/调试中始终需要40秒才能打开。我还关闭了调试符号的下载。我的图形驱动程序是最新的,我的硬盘也很好。这是代码:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");//This one
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
一切正常运行,除了RenderWindow,RenderWindow每次都需要40秒。有谁知道我该如何解决?我已经有几个星期了。
e:可能是我的CPU吗?这不是最好的,但是我仍然可以运行大多数游戏,因为我拥有1050ti。我目前的CPU是i5-2500k,尽管我相信我在A10-5800k上也遇到了同样的问题。
答案 0 :(得分:1)
由于OP没有进一步答复,我试图自己找到一种解决方法,因为该问题在2020年仍然存在。此解决方法要求您自己编译库。因此,下载源代码并更改以下内容:
WindowImpl.cpp
中,导航到函数WindowImp::WindowImp
并注释掉整个函数主体。WindowImpl.cpp
中,导航到WindowImp::popEvent
并注释掉对processJoystickEvents
的呼叫只要您不使用SFML的操纵杆部分,它就可以正常工作。
答案 1 :(得分:0)
SFML不和谐的撰稿人帮助我解决了这个问题,并向我展示了如何查看调用堆栈,结果发现冻结是在轮询dx输入时进行的,经过一番实验后我们发现怪我的k55键盘。我会在今晚晚些时候尝试找到修复程序,但是在短期情况下,拔掉它可以使一切正常。
答案 2 :(得分:0)
我有相同的键盘(Corsair K55)。对我来说,问题是海盗船的iCue软件,退出它完全可以解决我的问题,而无需拔下键盘。