GTKmm dziwne zachowanie string

Odpowiedz Nowy wątek
2015-01-17 00:09
Wybitny Kaczor
0

Witam, mam taki problem - pisze sobie takie proste GUI i zauwazylem pewna rzecz, ktora nie wiem jak obejsc mianowicie program wywala mi sie, gdy probuje używać funkcji gtk zwracającej typ std::string - na przyklad Glib::get_current_dir etc. Podobnie jest jak jakas funkcja potrzebuje jako argumentu std::string np otwierajaca obrazek to aplikacja sie wywala tj dostaje jakis tam violation i nic dalej nie idzie zrobic. Co ciekawe w przypadku gdy pisze do typu ustring takie problemu nie ma - teoretycznie wyglada to na jakis balagan z kodowaniem, ktore wystepuje tylko przy std::string, a nie ma tego przy ustring, jednak czesc potrzebnych mi gotowych funkcji gtk uzywa niestety std::string i nie wiem co z tym zrobic. dodam ze pisze w ms visual studio 2012. Czy spotkal sie ktos z was moze z taka sytuacja albo ma pomysl co z tym zrobic mozna?

Pozostało 580 znaków

2015-01-17 01:25
0

czy biblioteka gtk była skompilowana tą samą wersją kompilatora? jeśli nie, to być może używa innej definicji klasy std::string niż twój program.

przekompiluj bibliotekę.

poszczególne wersje Visuala (2008, 2010, 2012...) mają zupełnie niezgodne ze sobą klasy z STL-a.
GCC też ma swoją implementację.

edytowany 1x, ostatnio: Azarien, 2015-01-17 01:26

Pozostało 580 znaków

2015-01-17 01:45
Wybitny Kaczor
0

gtk instalowałem binarkę, nie wiem czym to było kompilowane, ale zauważyłem jeszcze jedną rzecz - mianowicie jak chcę otworzyć obrazek

std::string d = "1m.jpg";
            Glib::RefPtr<Gdk::Pixbuf> image = Gdk::Pixbuf::create_from_file(d); 

to w terminalu dostaję taki komunikat:
unhandled exception is signal handler:
domain: g-file-error-quark
code: 17
what : failed to open file '`p\u001f': Invalid Argument


Czyli wyglada jakby traktowal moj plik 1m.jpg jako p\u001f...

Pozostało 580 znaków

2015-01-17 11:36
Wybitny Kaczor
0

Jak zmienilem na ms visual studio 2010 to ruszylo, ale niestety nie cieszy mnie to, bo tak czy siak musze uzywac wersji 2012 - wyglada na to, ze ten property sheet ktory mu podpialem jest dla wersji 2010, a dla 2012 takowego w ogole nie ma ;/

Pozostało 580 znaków

2015-01-17 13:52
0

Nie będzie ci string działał na granicy program–gtk jeśli program jest kompilowany inną wersją Visuala niż GTK.
Jeśli nie możesz znaleźć wersji GTK skompilowanej konkretnie wersją 2012 (tylko tą i żadną inną) to zostaje ci samodzielne przekompilowanie GTK.

edytowany 2x, ostatnio: Azarien, 2015-01-17 13:52

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0