Witam.
Zacząłem uczyć się biblioteki graficznej SFML z kursu na tej stronie, autorstwa Piotra Szawdyńskiego. Przy okazji jest to moje pierwsze spotkanie z Visual C++ 2010 Express. Od początku kursu napotykałem różne problemy z tą biblioteką, ale teraz mam taki, którego po naprawdę wielu kombinacjach nie mogę rozwiązać. Myślę że może on być związany nie tyle z samym programowaniem co z błędami technicznymi.
Mój program ma jak na razie wyświetlać wczytany z pliku obraz png i czyścić okno. Już sama metoda Okno.Clear() powoduje błąd:
First-chance exception at 0x0100a800 in Core.exe: 0xC0000005: Access violation.
A buffer overrun has occurred in Core.exe which has corrupted the program's internal state. Press Break to debug the program or Continue to terminate the program.
Bez tej metody i metod związanych ze spritem program się uruchamia i gdy go wyłączam, pojawia się komunikat:
Run-Time Check Failure #2 - Stack around the variable 'Okno' was corrupted.
Kojarzone jest to z przekroczeniem w tablicy, ale 'Okno' to obiekt klasy sf::RenderWindow, więc nie rozumiem o co może chodzić.
Wyczytałem w wielu miejscach, że dla konfiguracji Debug biblioteki w linkerze powinny mieć sufiks -d. Dodałem go i wkleiłem odpowiednie *.dll do folderu z programem. Efekt:
Aplikacja nie została właściwie zainicjowana (0xc0150002)
i wyłączenie się programu. Informacje z Output:
'Core.exe': Loaded 'D:\Radziu\Programy\Moje C++\SFML\Core\Debug\Core.exe', Symbols loaded.
'Core.exe': Loaded 'C:\Windows\System32\ntdll.dll', Cannot find or open the PDB file
'Core.exe': Loaded 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file
'Core.exe': Loaded 'D:\Radziu\Programy\Moje C++\SFML\Core\Core\sfml-window-d.dll', Cannot find or open the PDB file
Debugger:: An unhandled non-continuable exception was thrown during process load
The program '[4840] Core.exe: Native' has exited with code -1072365566 (0xc0150002).
Co robię źle? Co sugerujecie? Nie wiem już co mogę zrobić inaczej. Mam nadzieję, że podałem dość informacji o problemie, ale jeśli nie - oczywiście pytajcie.
Z góry dziękuję za zainteresowanie tematem i odpowiedzi i przepraszam za zaśmiecanie forum zapewne błachym (jak znam życie ;)) problemem. Pozdrawiam.
PS. Komunikaty powinny być wklejone w ramkach. Jak się to robi? Nie jestem częstym bywalcem forów, więc nie pamiętam.