C ++ / SFML窗口创建失败

时间:2012-07-23 20:29:17

标签: c++ visual-studio-2010 window sfml

好吧,我尝试按tutorial所示完成所有操作,但它只显示控制台,仅此而已。试过这个时钟程序,它工作得很好。我连接了所有的libs,并复制了所有.dll文件,所以真的不知道我哪里错了。请告诉我该怎么做以显示它显示窗口。我正在使用VS2010,SFML 1.6,这是我的代码。

    #include <SFML\Window.hpp>

    int main()
    {

         sf::Window App(sf::VideoMode(640, 480, 32), "wut");

         while (App.IsOpened())
         {
              sf::Event Event;
              while (App.GetEvent(Event))
              {
               // Window closed
               if (Event.Type == sf::Event::Closed)
                   App.Close();

               // Escape key pressed
               if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
                  App.Close();        
               };
              App.Display();

          }
     };

3 个答案:

答案 0 :(得分:0)

试试这个:

#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

int main()
{
    // Create the main rendering window
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Graphics");

    // Start game loop
    while (App.IsOpened())
    {
        // Process events
        sf::Event Event;
        while (App.GetEvent(Event))
        {
            // Close window : exit
            if (Event.Type == sf::Event::Closed)
                App.Close();
        }

        // Clear the screen (fill it with black color)
        App.Clear();

        // Display window contents on screen
        App.Display();
    }

    return EXIT_SUCCESS;
}

答案 1 :(得分:0)

你链接到sfml-main库吗?如果没有,请尝试,如果失败,请尝试执行WinMain而不是main()函数。另外,请确保Visual Studio未将项目设置为控制台程序。

答案 2 :(得分:0)

我最近一直在使用SFML。按顺序尝试这些建议,保留之前的每个更改:

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

它应该是sf :: RenderWindow,而不是sf :: Window

它应该是while (App.isOpen())而不是IsOpened()

如果它似乎没有你的RenderWindow上的函数“isOpen”,你可能没有SFML2,我建议立即获取。

您是否为您的计算机重建了库,或者您是否尝试使用它们提供的.dll?您可能需要使用Cmake重建它们,无论您的编译器是什么。我知道我做了。

最后,我还建议使用最新的Code :: Blocks作为您的IDE,但我想只能作为最后的手段。