Code: Select all
#include
#include
int main() {
sf::RenderWindow window{ {800, 600}, "TGUI window with SFML" };
tgui::GuiSFML gui{ window };
gui.loadWidgetsFromFile("menus/startMenu.txt");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
gui.handleEvent(event);
if (event.type == sf::Event::Closed) {
window.close();
}
}
window.clear();
gui.draw();
window.display();
}
}
Code: Select all
#include
#include
int main() {
sf::RenderWindow window{ {800, 600}, "TGUI window with SFML" };
tgui::GuiSFML gui{ window };
gui.loadWidgetsFromFile("menus/startMenu.txt");
tgui::Button::Ptr aButton = gui.get("a"); // right here
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
gui.handleEvent(event);
if (event.type == sf::Event::Closed) {
window.close();
}
}
window.clear();
gui.draw();
window.display();
}
}
Ausnahme ausgelöst bei 0x7956271B (tgui.dll) in Labyrinth 2.exe: 0xC0000005: Zugriffsverletzung beim Lesen von Speicherort 0x000003E4
Ich verknüpfe derzeit tgui und sfml dynamisch, Verwendung von TGUI-0.9 und SFML-2.5.1 mit Debug x86 in Visual Studio c++.
Der Fehler sagt mir auch, dass er von
kommt
Code: Select all
template
typename T::Ptr get(const String& widgetName) const
{
return std::dynamic_pointer_cast(get(widgetName));
}
Ich denke, dass das Problem darin liegt, dass der Dynamic_pointer_cast einen Fehler auslöst, aber ich weiß nicht, wie ich das beheben kann. Ich verstehe auch nicht, warum alles andere außer der Funktion gui.get("sometext"); funktioniert. Irgendwelche Hilfe?
Edit 1: Ich habe es mit gui.get() getestet, was völlig einwandfrei funktioniert. Das bedeutet, dass das Problem definitiv im Dynamic_pointer_cast liegt, da gui.get() einfach gui.get() aufruft und darauf Dynamic_pointer_cast ausführt.
Mobile version