Использование SFML с Visual Studio 2010 - PullRequest
1 голос
/ 11 декабря 2011

Прямо сейчас я пытаюсь заставить SFML работать с моей Visual Studio 2010, чтобы я мог начать изучать, как создавать приложения и игры для Windows, используя библиотеки в SFML. Я следую указаниям здесь , чтобы открыть новое окно, но моя программа, похоже, мгновенно ломается. Я действительно не знаю почему: S. Вроде бы собирать и компилировать, но потом ломается:

Редактировать: Разрывается на этой строке: App.Create(sf::VideoMode(800, 600, 32), "SFML Window");

#include <SFML/Window.hpp>

int main ()
{
    sf::Window App;
    App.Create(sf::VideoMode(800, 600, 32), "SFML Window");
    bool Running = true;
    while (Running)
    {
        sf::Event Event;
        while (App.GetEvent(Event))
        {
            if (Event.Type == sf::Event::Closed)
                Running = false;

            if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape))
                Running = false;

        }
        App.Display();
    }

    return EXIT_SUCCESS;
}

Кроме того, я должен отметить: На веб-сайте SFML учебники по его настройке в Visual Studio, по-видимому, предназначены для VS 2008 (Настройка SFML с VS). Мне удалось получить набор инструкций для VS2010 и настроить его. Я использовал короткую программу для проверки работы библиотек SFML:

#include <SFML/System.hpp>
#include <iostream>

int main()
{
    sf::Clock Clock;
    while (Clock.GetElapsedTime() < 5.f)
    {
        std::cout << Clock.GetElapsedTime() << std::endl;
        sf::Sleep(0.5f);
    }

    return 0;
}

^ Эта программа работала нормально.

Ответы [ 2 ]

2 голосов
/ 29 марта 2013

Библиотеки SFML скомпилированы для Visual Studio 2008. Если вы используете его с VS2010, он будет «работать». При вызове определенных функций (например, App.Clear ()) вы будете получать сообщения о поврежденном стеке и, возможно, других сложных сбоях.

Вам нужно либо самостоятельно перекомпилировать исходный код для библиотек, либо найти версию, где это сделал кто-то другой. Я не думаю, что есть «официальный» источник, но если вы будете искать форумы на сайте SFML, вы найдете несколько ссылок на библиотеки, скомпилированные для 2010 года.

Поздний ответ, я знаю ... но этот вопрос все еще возникает постоянно.

0 голосов
/ 11 декабря 2011

Я почти уверен, что ошибка, которую вы получаете здесь, заключается в том, что вы использовали Window вместо RenderWindow.

...