problem z uzyciem funkcji SDL w Visual Studio

0

witam
tworze program w visual studio 2005 professional w c++ uzywajac SDL. w pewnym momencie chcialem uzyc przezroczystosci funkcja SDL_SetColorKey(), ale po wlaczeniu program od razu wywala access violation przy tej linice. po wywaleniu do komentarzy niamal calego kodu wciaz jest ten blad. w dev-c++ dziala poprawnie. sam SDL jest raczej poprawnie skonfigurowany, nie liczac tej funkcji programy kompiluja sie bez problemu (choc moze czegos brakowac czy cos byc zle ustawione, pewnosci miec nie moge). nie wiem czy to problem z kodem, czy z konfiguracja samego VS, prawdopodobnie to drugie.

#include "stdafx.h"

SDL_Surface *back;
SDL_Surface *image;
SDL_Surface *screen;

int InitImages()
{
  back = SDL_LoadBMP("ferrari.bmp");
  image = SDL_LoadBMP("kulka.bmp");
  SDL_SetColorKey(image, SDL_SRCCOLORKEY, SDL_MapRGB(image->format, 255, 255, 255)); // tu BLAD
  return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO);
screen=SDL_SetVideoMode(640,480,32,SDL_HWSURFACE|SDL_DOUBLEBUF); 
InitImages();
return 0;
}

specjalnie zastapilem moj kod skopiowanym z tutka SDL aby miec pewnosc ze jest poprawny, ale to nic nie pomoglo ;/
gdyby ktos mogl pomoc to bylbym bardzo wdzieczny :)

0

jesli to za trywialne pytanie, to przepraszam, ale 0xc000005 - access violation to zazwyczaj odwolanie przez nullpointer'a. sprawdzales czy oba SDL_LoadBMP zwracana nie-zero ?

0

heh, zadne pytanie nie jest zbyt trywialne... heh, wczesniej gdzies przeczytalem, ze nie nalezy uruchamiac kodu SDL z poziomu visual studio bo vs ma klopoty ze sposobem w jaki wyswietla grafike, wiec odpalalem juz skompilowanego exe z katalogu do ktorego vs go wypluwal, tam tez byly pliki graficzne z ktorych program korzystal. wszystko dzialalo ok, ale jak sie faktycznie okazalo - w vs juz nie, i to nie przez problemy z grafika tylko po prostu ten exe "myslal" ze jego sciezka lokalna byla inna niz byla naprawde, wiec nie mogl odnalezc tych plikow. po wykorzystaniu nie-relacyjnych sciezek dziala [glowa] jest to o tyle dziwne ze przeciez po dodaniu tej funkcji rowniez uruchamialem kod z katalogu, i wtedy juz nie dzialalo dopoki vs nie widzial tych plikow?! nie wiem, jesli chodzi o samo IDE vs to musze sie jeszcze sporo nauczyc, bo to temat rzeka ;] w kazdym badz razie wielkie dzieki za wyjasnienie takiej prostej sprawy ;d

0

w ustawieniach projektu VS, na zakaldce "debugging" jest mozliwosc ustawienia sobie katalogu "working directory" - o ile dobrze pamietam, jest to domyslnie katalog projektu, nie ow katalog debug/release w ktorym siedzi exek, ale moge sie mylic. w kazdym badz razie ustaw sobie working directory na dokaldnie ten katalog w ktorym exek sieci i bedzie dziac dobrze z wzglednymi sciezkami

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