Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Polpopolitan

Pages: [1]
1
Graphique / Re : Tableau de sf::Text = crash
« le: Avril 01, 2013, 02:57:44 pm »
J'ai finalement trouvé la solution par moi même.
Le fautif était le sf::Font. J'ai codé une classe FontManager qui stocke les sf::Font et qui permet de ne pas avoir à les copier, et l'erreur était résolue. J'imagine donc que quelque chose essayait d'accéder au sf::Font lorsqu'il n'existait plus.

2
Graphique / Tableau de sf::Text = crash
« le: Avril 01, 2013, 01:56:31 pm »
Bonjour à tous.

Je programme en ce moment un petit moteur de jeu qui couple la SFML et le moteur physique Box2D. Depuis quelques temps je suis confronté à un problème : mon application fonctionne correctement mais plante lorsqu'elle reçoit l'évenement Closed. Voilà un extrait du code :

/*
 * filename : MainMenuContext.cpp
 * author : Roch Dionnet
 * creation date : 03/24/2013
 * additional details :
 */


#include "MainMenuContext.hpp"
#include "globals.hpp"

void MainMenuContext::init(void) {

    _font.loadFromFile(FONTS_PATH + std::string("HFF Fire Dancer.ttf"));

    _texts[0].setString("Main Menu");
    _texts[1].setString("Play");
    _texts[2].setString("Settings");
    _texts[3].setString("Quit");
    _texts[4].setString("Breakout");

    for(unsigned int i = 0; i < 5; i++) {

        _texts[i].setFont(_font);
        _texts[i].setCharacterSize(50);
        _texts[i].setColor(sf::Color::Yellow);
    }

    _texts[0].setCharacterSize(70);
    _texts[4].setCharacterSize(130);

    _texts[4].setColor(sf::Color(255, 122, 0));

    _texts[0].setPosition(100.f, 220.f);
    _texts[1].setPosition(150.f, 355.f);
    _texts[2].setPosition(150.f, 455.f);
    _texts[3].setPosition(150.f, 555.f);

    _texts[4].setPosition(WW/2 - _texts[4].getGlobalBounds().width/2, 15.f);

    _backgroundSprite.setTexture(*_tm.getTexture(SPRITES_PATH + std::string("menu_background.png")));
    _backgroundSprite.setPosition(0.f, 0.f);
}

int MainMenuContext::update(void) {

    _rw.clear(sf::Color::White);
    _rw.draw(_backgroundSprite);
    for(unsigned int i = 0; i < 5; i++)
        _rw.draw(_texts[i]);

    _rw.display();
    return 0;
}

Je sais que cet extrait est coupable du crash. _texts est un attribut de MainMenuContext de type sf::Text[5].
Si je met les appels à setString() en commentaire, mon application ne plante plus mais évidemment les textes ne s'affichent pas.
Après le crash, Visual Studio m'affiche une boite de dialogue qui dit : "Exception non gérée à 0x5d2f6d34 dans GameEngine3.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000008."
La pile des appels m'indique que la dernière fonction appellée est __tmainCRTStartup()  Ligne 572. La ligne est la suivante :

__except ( _XcptFilter(GetExceptionCode(), GetExceptionInformation()) ) { /* [snip] */ }

Et voici la pile des appels complète :
atioglxx.dll!5d2f6d34()
  [Les frames ci-dessous sont peut-être incorrects et/ou manquants, aucun symbole chargé pour atioglxx.dll]
  atioglxx.dll!5ca7c913()
  atioglxx.dll!5d930f5e()
  atioglxx.dll!5d2e6b40()
  atioglxx.dll!5d309fa4()
  atioglxx.dll!5d2eee1c()
  sfml-window-2.dll!5fee4dce()
  sfml-window-2.dll!5fee4e88()
> sfml-window-2.dll!5fee1de5()
  sfml-window-2.dll!5fee2375()
  sfml-graphics-2.dll!5de1a482()
  sfml-graphics-2.dll!5de038b3()
  sfml-graphics-2.dll!5de04059()
  sfml-graphics-2.dll!5de047e7()
  sfml-graphics-2.dll!5de7eaf9()
  sfml-graphics-2.dll!5de7ec15()
  sfml-graphics-2.dll!5de7ec92()
  ntdll.dll!77de2846()
  ntdll.dll!77de2893()
  ntdll.dll!77df09c8()
  ntdll.dll!77df08ad()
  kernel32.dll!777b39f7()
  msvcr100.dll!72197997()
  msvcr100.dll!72197ab0()
  msvcr100.dll!72197b1d()
  GameEngine3.exe!__tmainCRTStartup()  Ligne 572 C
  kernel32.dll!777b8543()
  ntdll.dll!77deac69()
  ntdll.dll!77deac3c()

Comme vous pouvez le voir, je ne peux pas remonter plus haut dans mon application puisque le crash a lieu lorsque exit() est appelée.
J'ai fais quelques recherches, et apparemment cela pourrait venir d'un mauvais déréférencement de références, ou de tableaux dont la taille limite est dépassée, mais je n'ai rien de tout cela dans mon application.

Merci d'avance de votre aide :)


3
Je n'avais pas pensé à ça  ???

Ça marche bien, j'ai du mettre à jour les pilotes de ma (très vieille) carte graphique.

Merci pour votre aide très précieuse :D


4
Merci de cette réponse rapide à une heure si tardive.

Pour ce qui est de l'installation standard,  les erreurs sont différentes suivant si j'utilise les librairies statiques ou dynamiques.

Librairies dynamiques :

- SFML_DYNAMIC est définie.
- mon projet est en release.
- j'ai correctement link sfgui.lib, sfml-graphics.lib, sfml-window.lib, sfml-system.lib et sfml-network.lib (j'utilise celle-ci dans mon projet).
- les DLL qui sont présentes dans la solution sont : sfgui.dll, sfml-graphics-2.dll, ...(etc) ainsi que libsndfile-1.dll et openal32.dll.

L'erreur est présente après le lancement de l'application : SquidoChatServer.exe - Entry Point Not Found

The procedure entry point ?getFont@Text@sf@@QBEPBVFont@2@XZ could not be located in the dynamic link library sfml-graphics-2.dll.

C'est pourtant la seule version de sfml-graphics-2.dll présente dans les sources.

Librairies statiques :

- SFML_DYNAMIC n'est pas définie.
- l'erreur est présente que SFML_STATIC soit définie ou non.
- les bibliothèques sont link elles-aussi.
- mon projet est en release.

La console me renvoie 38 LNK2001 :
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::Label::SetText(class sf::String const &)" (__imp_?SetText@Label@sfg@@QAEXABVString@sf@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class sfg::SharedPtr<class sfg::Label> __cdecl sfg::Label::Create(class sf::String const &)" (__imp_?Create@Label@sfg@@SA?AV?$SharedPtr@VLabel@sfg@@@2@ABVString@sf@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::Desktop::Add(class sfg::SharedPtr<class sfg::Widget>)" (__imp_?Add@Desktop@sfg@@QAEXV?$SharedPtr@VWidget@sfg@@@2@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::Desktop::HandleEvent(class sf::Event const &)" (__imp_?HandleEvent@Desktop@sfg@@QAEXABVEvent@sf@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::Desktop::Update(float)" (__imp_?Update@Desktop@sfg@@QAEXM@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sfg::Desktop::~Desktop(void)" (__imp_??1Desktop@sfg@@QAE@XZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sfg::Desktop::Desktop(void)" (__imp_??0Desktop@sfg@@QAE@XZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::Window::SetTitle(class sf::String const &)" (__imp_?SetTitle@Window@sfg@@QAEXABVString@sf@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class sfg::SharedPtr<class sfg::Window> __cdecl sfg::Window::Create(int)" (__imp_?Create@Window@sfg@@SA?AV?$SharedPtr@VWindow@sfg@@@2@H@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::Box::Pack(class sfg::SharedPtr<class sfg::Widget> const &,bool,bool)" (__imp_?Pack@Box@sfg@@QAEXABV?$SharedPtr@VWidget@sfg@@@2@_N1@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class sfg::SharedPtr<class sfg::Box> __cdecl sfg::Box::Create(enum sfg::Box::Orientation,float)" (__imp_?Create@Box@sfg@@SA?AV?$SharedPtr@VBox@sfg@@@2@W4Orientation@12@M@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class sfg::Signal & __thiscall sfg::Object::GetSignal(unsigned int &)" (__imp_?GetSignal@Object@sfg@@QAEAAVSignal@2@AAI@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::SFGUI::Display(class sf::RenderTarget &)" (__imp_?Display@SFGUI@sfg@@QAEXAAVRenderTarget@sf@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sfg::SFGUI::~SFGUI(void)" (__imp_??1SFGUI@sfg@@QAE@XZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sfg::SFGUI::SFGUI(void)" (__imp_??0SFGUI@sfg@@QAE@XZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sfg::Container::Add(class sfg::SharedPtr<class sfg::Widget> const &)" (__imp_?Add@Container@sfg@@QAEXABV?$SharedPtr@VWidget@sfg@@@2@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned int sfg::Widget::OnLeftClick" (__imp_?OnLeftClick@Widget@sfg@@2IA)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: static unsigned int sfg::Signal::m_serial" (__imp_?m_serial@Signal@sfg@@0IA)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class sfg::SharedPtr<class sfg::Button> __cdecl sfg::Button::Create(class sf::String const &)" (__imp_?Create@Button@sfg@@SA?AV?$SharedPtr@VButton@sfg@@@2@ABVString@sf@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall sf::RenderWindow::~RenderWindow(void)" (__imp_??1RenderWindow@sf@@UAE@XZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::RenderWindow::RenderWindow(class sf::VideoMode,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,struct sf::ContextSettings const &)" (__imp_??0RenderWindow@sf@@QAE@VVideoMode@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABUContextSettings@1@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sf::Window::display(void)" (__imp_?display@Window@sf@@QAEXXZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall sf::Window::pollEvent(class sf::Event &)" (__imp_?pollEvent@Window@sf@@QAE_NAAVEvent@2@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall sf::Window::isOpen(void)const " (__imp_?isOpen@Window@sf@@QBE_NXZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sf::Window::close(void)" (__imp_?close@Window@sf@@QAEXXZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::String::String(char const *,class std::locale const &)" (__imp_??0String@sf@@QAE@PBDABVlocale@std@@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: float __thiscall sf::Time::asSeconds(void)const " (__imp_?asSeconds@Time@sf@@QBEMXZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class sf::Time __thiscall sf::Clock::restart(void)" (__imp_?restart@Clock@sf@@QAE?AVTime@2@XZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::Clock::Clock(void)" (__imp_??0Clock@sf@@QAE@XZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::VideoMode::VideoMode(unsigned int,unsigned int,unsigned int)" (__imp_??0VideoMode@sf@@QAE@III@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sf::RenderTarget::resetGLStates(void)" (__imp_?resetGLStates@RenderTarget@sf@@QAEXXZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall sf::RenderTarget::clear(class sf::Color const &)" (__imp_?clear@RenderTarget@sf@@QAEXABVColor@2@@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::Color::Color(unsigned char,unsigned char,unsigned char,unsigned char)" (__imp_??0Color@sf@@QAE@EEEE@Z)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::String::~String(void)" (__imp_??1String@sf@@QAE@XZ)
1>ServerWindow.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) private: virtual bool __thiscall sf::RenderWindow::activate(bool)" (__imp_?activate@RenderWindow@sf@@EAE_N_N@Z)
1>ServerWindow.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: virtual void __thiscall sf::RenderWindow::onResize(void)" (__imp_?onResize@RenderWindow@sf@@MAEXXZ)
1>ServerWindow.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) protected: virtual void __thiscall sf::RenderWindow::onCreate(void)" (__imp_?onCreate@RenderWindow@sf@@MAEXXZ)
1>ServerWindow.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual class sf::Vector2<unsigned int> __thiscall sf::RenderWindow::getSize(void)const " (__imp_?getSize@RenderWindow@sf@@UBE?AV?$Vector2@I@2@XZ)
1>D:\Programmation\Visual-Studio-Projects\SquidoChatServer\Release\SquidoChatServer.exe : fatal error LNK1120: 38 unresolved externals

Je pense que je n'ai rien oublié.

5
Bonjour/Bonsoir à tous.

Après plus de 4 heures (vraiment) passées à tenter d'installer ce fichu plug-in, j'abandonne et je m'en remet aux forums. Voilà, dans l'ordre (ou pas), la liste simplifiée de ce que j'ai essayé (j'utilise Visual Studio 2010) :

  • Installation "normale", avec les librairies VC10 et SFML 2.0 : 17 erreurs de link, et je suis persuadé d'avoir configuré correctement.
  • Compilation de SFGUI avec CMake : galère à utiliser cmake, mais erreurs au moment du build sous VC10. Différents essais avec différentes configurations pour le même résultat.
  • Compilation de la SFML avec CMake, en espérant que les libs pré-compilées de SFGUI fonctionneront avec. Impossible de build avec VC10 là aussi.
  • Je décide d'utiliser nmake à la place des fichiers de l'IDE (j'avais mis du temps à comprendre que la console de Visual Studio ne mettais pas les compilo dans le path mais servais bien à utiliser cmake). ça marche presque, sauf au moment du "make install" : erreur sur le makefile, ligne 28.
  • Je regarde le makefile et tente de le modifier (la ligne concernée étant inutile) : nouvelle erreur incompréhensible.

Je demande votre aide, exténué, car je suis à court d'idées. J'ai tout essayé et rien ne fonctionne, et même google hausse les épaules. Puisqu'il semble que très peu de personnes ont mon problème, ça doit probablement être un oubli de ma part ; mais à mes yeux tout est correct dans mes configurations. 

Merci d'avance  :-\

Pages: [1]
anything