Bonjour,
J'utilise SFML 2.1 avec CodeBlocks 12.11, et quand je lance mon programme (qui compile sans erreur), il crash et j'obtiens :
Process returned -1073741819 (0xC0000005) execution time : 4.196 s
Contrairement aux sujets sur cette erreur que j'aipu trouver, le code de base proposé dans le tutoriel fonctionne très bien. Mais d'utiliser la POO, ça marchait, mais avec un certain code j'ai cette erreur, je ne sais vraiment pas d'où elle vient.
En gros, j'ai une classe EditMode, dont l'attribut m_window est un pointeur vers la sf::RenderWindow courante.
Elle utilise la méthode drawScreen, qui est appelée à chaque tour de la boucle principale.
Si j'implémente cette méthode de la façon suivante, tout marche bien :
void EditMode::drawScreen()
{
sf::Sprite sprite ;
sf::Texture texture ;
if (texture.loadFromFile ("0.png"))
{
std::cout << "Texture chargee" << std::endl ;
sprite.setTexture (texture) ;
std::cout << "Texture appliquee" ;
m_window->draw (sprite);
}
}
(oui je sais c'est dégueu de recréer la texture à chaque tour de boucle, c'est juste pour l'exemple..)
Mais si je crée une classe Map, disposant d'une méthode draw() et d'un attribut m_window pointant vers la fenêtre principale, et que ma classe EditMode dispose d'un attribut m_map pointeur vers une instance de la classe Map, en définissant mes méthodes de la façon suivante, j'obtiens l'erreur :
void EditMode::drawScreen()
{
m_map->draw();
}
void Map::draw()
{
sf::Sprite sprite ;
sf::Texture texture ;
if (texture.loadFromFile ("0.png"))
{
std::cout << "Texture chargee" << std::endl ;
sprite.setTexture (texture) ;
std::cout << "Texture appliquee" ;
m_window->draw (sprite);
}
}
Petite précision, j'utilise MinGW fourni avec CodeBlocks 12.11, j'ai téléchargé la version "GCC 4.7 TDM (SJLJ) - 32 bits", j'utilise le compilateur en mode debug et j'ai configuré mon Linker settings de la manière suivante :
sfml-graphics-d
sfml-window-d
sfml-system-d