Lesezugriffsverletzung beim Ausführen von gui.get("") mit dem SFML-Backend in TGUIC++

Programme in C++. Entwicklerforum
Anonymous
 Lesezugriffsverletzung beim Ausführen von gui.get("") mit dem SFML-Backend in TGUI

Post by Anonymous »

Ich versuche derzeit, TGUI mit SFML als Backend zu verwenden. Mit diesem Code funktionierte alles einwandfrei

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();
}
}
Ich habe dann jedoch versucht, eine Zeile hinzuzufügen, um auf eine Schaltfläche zu verweisen, die von tgui::Button::Ptr aButton = gui.get("a"); geladen wurde.

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();
}
}
und es gibt mir diesen Fehler

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));
}
in Container.hpp in TGUI.
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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post
  • Probleme bei der Verwendung von TGUI mit SFML im C++-Projekt in Visual Studio 2022
    by Anonymous » » in C++
    0 Replies
    0 Views
    Last post by Anonymous
  • Probleme bei der Verwendung von TGUI mit SFML im C++-Projekt in Visual Studio 2022
    by Anonymous » » in C++
    0 Replies
    0 Views
    Last post by Anonymous
  • Validierung der Eingabe in der TGUI-Bibliothek von SFML
    by Anonymous » » in C++
    0 Replies
    0 Views
    Last post by Anonymous
  • So konfigurieren Sie TGUI + SFML mit CMake
    by Anonymous » » in C++
    0 Replies
    1 Views
    Last post by Anonymous
  • Was bedeutet Template ?
    by Anonymous » » in C++
    0 Replies
    6 Views
    Last post by Anonymous