Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.1] [TGUI v0.5] Odmowa dostępu do adresu w konstruktorze

Ostatnio zmodyfikowano 2013-08-26 15:48
Autor Wiadomość
kubawal
Temat założony przez niniejszego użytkownika
[SFML 2.1] [TGUI v0.5] Odmowa dostępu do adresu w konstruktorze
» 2013-08-25 21:31:11
Witam!

Oto kod:
C/C++
class Game
    :
{
    tgui::Window win;
    //...
};

Game::Game( int ww, int hh )
    : win( sf::VideoMode( ww, hh ), "Samolocik" )
    , //...
{
    //...
}
Kawałek kodu TGUI:
C/C++
Window::Window( sf::VideoMode mode, const std::string & title, sf::Uint32 style, const sf::ContextSettings & settings )
{
    // Create the window
    this->RenderWindow::create( mode, title, style, settings );
   
    // The main window is always focused
    m_GroupFocused = true;
}

W linijce
this->RenderWindow::create( mode, title, style, settings );
 wywala "Access violation reading location...".
(to nie NULL, sprawdzałem).
W disasm (kod tej linijki):

 lea         ecx,[ebp-38h] 
 call        std::locale::locale (503C0Bh) 
 mov         dword ptr [ebp-3Ch],eax 
 mov         eax,dword ptr [ebp-3Ch] 
 mov         dword ptr [ebp-40h],eax 
 mov         byte ptr [ebp-4],3 
 mov         esi,esp 
 mov         ecx,dword ptr [ebp-40h] 
 push        ecx 
 mov         edx,dword ptr [ebp+14h] 
 push        edx 
 lea         ecx,[ebp-34h] 
 call        dword ptr [__imp_sf::String::String (62DDA4h)] 
 cmp         esi,esp 
W ostatniej instrukcji wywala ten błąd. Podejrzewam że to jakiś problem ze stringiem (przedostatnia instrukcja).
P-90885
ridic14
» 2013-08-25 22:55:43
Jaka wersja TGUI <kompilowałeś sam czy gotowe liby> ?... hmm... ewentualnie spróbuj użyć klasy (tgui::Form - 5.0)/(tgui::Gui - 6.0)
P-90888
kubawal
Temat założony przez niniejszego użytkownika
» 2013-08-26 10:09:35
Pod VC można tylko sam skompilować. Mam TGUI v0.5.
P-90897
DejaVu
» 2013-08-26 14:59:11
Być może gdzieś kopiujesz obiekt Game zamiast przekazywać go przez referencję.
P-90934
kubawal
Temat założony przez niniejszego użytkownika
» 2013-08-26 15:10:39
Nie, obiekt Game jest tylko jeden (tworzony w main() i obsługuje całą resztę.
Ale spróbowałem utworzyć tgui::Form zamiast tgui::Window i wywala mi "Nie znaleziono punktu wyjścia procedury..." do konstruktora sf::RenderWindow.
W Release tego problemu nie ma, ale za to gra się crashuje przy próbie stworzenia jakichkolwiek widgetów.

Nie chce mi się z tym bawić, więc zamierzam napisać swoje własne GUI oparte o grafikę tgui'a.
P-90936
DejaVu
» 2013-08-26 15:22:04
Skoro nie znaleziono punktu wyjścia procedury to znaczy, że masz złe dll-ki, więc nic dziwnego, że w Release się crashuje, a w debug wyświetla komunikat.
P-90942
kubawal
Temat założony przez niniejszego użytkownika
» 2013-08-26 15:39:40
Taa? To nie powinno się wyśietlać coś w rodzaju "Nie można znależć xxx.dll. Ponowne zainstalowanie tej aplikacji może naprawić ten problem"?
P-90948
jankowalski25
» 2013-08-26 15:47:16
"Nie znaleziono dll-ki" to nie to samo, co "niepoprawna wersja dll-ki".
P-90950
« 1 » 2
  Strona 1 z 2 Następna strona