Zugriffsverletzung ( vermutlich durch leeren Zugriff )
-
Hallo,
ich wollte mich mal mit SFML vertraut machen und habe als Einstieg versucht, ein Fenster zu erstellen. Nun tritt aber folgendes Problem auf:
Unbehandelte Ausnahme bei 0x0fa259da (msvcr100d.dll) in SFML_game.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xccccccc0.
Die Zeile, zu der er springt: ( enthalten der dbgdel.cpp )
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
Ich weiß nicht wirklich, was er von mir will. Laut dem Fehlercode möchte er ja auf "etwas leeres" zugreifen. Anscheinend der String in der folgenden Zeile:
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");
Etwas anderes fällt mir gerade nicht ein.
( hier mal das komplette Programm )
#include <SFML/Graphics.hpp> int main() { sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window"); while(window.isOpen()) { sf::Event Event; while(window.pollEvent(Event)) { if(Event.type == sf::Event::Closed) window.close(); } } }
Vielleicht weiß jemand anders weiter?
Grüße
-
Du verwendest folgenden Konstruktor:
RenderWindow (VideoMode mode, const String &title, Uint32 style=Style::Default, const ContextSettings &settings=ContextSettings())
Dem kann man schon mal entnehmen, dass SFML über eine eigene String-Klasse verfügt. Was wird diese auf jeden Fall tun? Entsprechenden Speicher auf dem Heap anlegen. Ich vermute daher, dass du ein temporäres String-Objekt erzeugen musst:
#include <String.hpp> sf::RenderWindow window(sf::VideoMode(800, 600), String("Fenster"));
-
Das Programm sieht in Ordnung aus. Benutzt du SFML als DLL? Vielleicht hast du da beim Ausführen eine andere DLL liegen als gegen die gebaut worden ist.
-
Vielleicht hast du da beim Ausführen eine andere DLL liegen als gegen die gebaut worden ist.
Hast du gelitten?
-
Textmarker schrieb:
Ich vermute daher, dass du ein temporäres String-Objekt erzeugen musst
Hast Du gelitten?
-
Textmarker schrieb:
Ich vermute daher, dass du ein temporäres String-Objekt erzeugen musstHast Du gelitten?
Absolut valide Annahme. Habt ihr beide zusammen gelitten oder was?