Błąd po zakończeniu programu - "pure virtual function call"
Ostatnio zmodyfikowano 2012-11-15 17:12
RazzorFlame Temat założony przez niniejszego użytkownika |
Błąd po zakończeniu programu - "pure virtual function call" » 2012-11-13 18:32:32 Otóż chciałem przetestować GUI które dotychczas zrobilem (Button'y, EditBox'y, Obsluga myszki itd.) wiec zrobilem sobie programik. Co najdziwniejsze, nie używam wgle funkcji wirtualnych w tym kodzie :0. Kodu chyba nie trzeba pokazywać bo zauważyłem że błąd (chyba) pojawia się wtedy kiedy źle (lub w ogóle) użyje referencji. NP. w funkcji która przypisuje tablice pikseli z jakiegoś obiektu typu sf::Image do sf::Sprite nie mialem referencji i wyskakiwal błąd. Kiedy dodalem to nie bylo błędu. I jakoś tak dziwnie bo przed instalacją MS .net nie wyskakiwał mi taki błąd kiedy robilem tak referencje. A właśnie czy może coś mieć w tym wspólnego to że nie używam extern "C" przy importowaniu z biblioteki do GUI do tego problemu. Podpowiedzcie coś :)
Edit: Do czasu wyłączenia programu działa Okay :P |
|
crash |
» 2012-11-13 19:12:32 Poka kawałek kodu, chociażby same nagłówki funkcji i w jakich plikach nagłówkowych są, bo to takie jeno gdybanie będzie |
|
DejaVu |
» 2012-11-13 20:01:25 |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2012-11-13 20:10:12 DejaVu dzieki ale oni tam piszą np o wywołaniu wirtualnej funkcji w konstuktorze klasy dziedziczącej inną. Ja jak pisałem NIC a NIC nie używam w tym kodzie funkcji wirtualnych. Dziwne. Edit: Hmm: Następnie zostaje wykonana funkcja void wyswietlPole(Figura&) która przyjmuje jako parametr obiekt klasy Figura przez referencję. Tutaj również zostały wykonane odpowiednie metody dla obiektów klas pochodnych a nie metoda zgodna z obiektem jaki jest zadeklarowany jako parametr funkcji czyli float Figura::pole(). Takie działanie jest spowodowane przez przyjmowanie obiektu klasy Figura przez referencję. Gdyby obiekty były przyjmowane przez wartość (parametr bez &) zostałaby wykonana 3 krotnie metoda float Figura::pole() i 3 krotnie wyświetlona wartość -1.
Tekst (z końca) ze strony http://pl.wikipedia.org/wiki/Metoda_wirtualna. Coś to mi mówi ale ja przecież nie mam wirtualnych funkcji w klasach. |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2012-11-14 18:31:51 ---------- INFO: Nie edytuje tamtej wiadomości bo ta dotyczy czegoś innego ----------
Zauważyłem że jak skasuje tę linijkę (w programie testowym) "img.LoadFromFile("nazwapliku.bmp");" to wtedy błąd nie wyskakuje. Co dziwne mam jeszcze jeden obiek sf::Image i nawet gdy on też wczytuje bitmape to błąd nie wyskakuje (no chyba że wczytuje tamtym Image). Wkurza mnie to bo nie mogę kontynuować pracy nad grą! (PS: Gdyby tu była taka buźka :angry: to z chęcią bym ją postawił :D) |
|
Admixior |
» 2012-11-14 22:40:01 Podaj odwołania tej zmiennej i jakich funkcji używasz (jeśli są twoje to przydałyby się też definicje). Ew. zamieść kawałek kodu. Co dziwne mam jeszcze jeden obiek sf::Image i nawet gdy on też wczytuje bitmape to błąd nie wyskakuje (no chyba że wczytuje tamtym Image). |
to oznacza tylko jedno - że coś z tym image robisz co nie powinieneś. I wrzucenie kawałka kodu lub podania szerszych info co z tym robisz jest niezbędne do pomocy. |
|
RazzorFlame Temat założony przez niniejszego użytkownika |
» 2012-11-15 17:12:04 Okazalo się ze tylko mi występuje ten błąd. Wieć problemu nie ma |
|
« 1 » |