Bonsoir,
Je me permets de vous donner un code minimal qui plante pour une raison que je n'explique pas...
Mon environnement est Visual Studio 2010 et je viens de tester le code ci-dessous avec le dernier snapshot de SFML 2.0 et j'ai toujours mon problème...
J'ai prit le code d'exemple pour la SFML 2. J'ai rajouté une classe contenant un sf::String et un getter retournant le texte du String. Le but au final était d'avoir un input text (ce qui fonctionne bien) le problème vient du fait que je ne peux pas récupérer avec mon getter le contenu du sf::String...
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
class MaString
{
private:
sf::Text textLabel;
public:
MaString() { textLabel.setString("AAAAA"); }
~MaString() {}
std::string text() { return textLabel.getString().toAnsiString(); }
};
int main()
{
//Creation de l'objet
MaString test;
//Create the main window
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
//Load a sprite to display
sf::Texture texture;
if (!texture.loadFromFile("cute_image.jpg"))
return EXIT_FAILURE;
sf::Sprite sprite(texture);
//Start the game loop
while (window.isOpen())
{
//Process events
sf::Event event;
while (window.pollEvent(event))
{
// Close window : exit
if (event.type == sf::Event::Closed)
window.close();
}
//Clear screen
window.clear();
//Draw the sprite
window.draw(sprite);
//Essayer de recuperer le string
printf("%s\n", test.text().c_str());
//Update the window
window.display();
}
return EXIT_SUCCESS;
}
Pour le moment j'ai résolu mon problème en stockant un std::string et en lui faisant subir tout ce que le sf::String subit en transformation. Mais si je peux arriver à faire mieux avec votre aide pour économiser un peu de mémoire ce serait cool !
Je vous en remercie d'avance
Shadwk