SDL i Visual Studio

DirectX & XNA, OpenGL...
Post Reply
User avatar
Denis
Sajentist on djuti!
Posts: 2618
Joined: Tue Aug 26, 2008 9:35 pm
Smallest prime number bigger than 20: 23

SDL i Visual Studio

Post by Denis » Sat Apr 03, 2010 11:48 am

Imam problem s Visual Studiom i SDLom. Uspijem kompajlirati i aplikacija radi, no problem je ako pokrenem preko Visual Studia (F5), onda mi ne loada assete (jedan bmp), ako ga pokrenem ručno iz foldera, asset se loada. U čemu je problem i kako to popraviti?

User avatar
SupermanRAA
Posts: 122
Joined: Tue Jan 26, 2010 1:19 am
Smallest prime number bigger than 20: 23

Re: SDL i Visual Studio

Post by SupermanRAA » Sat Apr 03, 2010 12:13 pm

a stavi kod jeboga..
http://senselesspoet.blog.hr/ -> malo moe poezije :D

User avatar
Denis
Sajentist on djuti!
Posts: 2618
Joined: Tue Aug 26, 2008 9:35 pm
Smallest prime number bigger than 20: 23

Re: SDL i Visual Studio

Post by Denis » Sat Apr 03, 2010 12:26 pm

Pa nije baš da vam treba kôd, ako radi samostalno, a preko Visual Studia pokrenuto ne. Al ajd...

Code: Select all

#include "SDL.h"

int main(int argc, char* args[])
{
	SDL_Surface* hello = NULL;
	SDL_Surface* screen = NULL;
	
	SDL_Init(SDL_INIT_EVERYTHING);

	screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
	hello = SDL_LoadBMP("hello.bmp");

	if(hello == NULL)
	{
		return 0; //ovo sam stavio da provjerim jel loada sliku - tu pada
	}

	SDL_BlitSurface(hello, NULL, screen, NULL);
	SDL_Flip(screen);
	SDL_Delay(2000);

	SDL_Quit();
	return 0;
}

User avatar
Luka
Posts: 1384
Joined: Tue Aug 26, 2008 3:32 pm
Smallest prime number bigger than 20: 23

Re: SDL i Visual Studio

Post by Luka » Sat Apr 03, 2010 12:41 pm

Razlog je to što se varijabla trenutnog foldera razlikuje u slučaju "običnog" pokretanja (trenutni folder = folder gdje je exe) i pokretanja preko VSa (ako se ne varam - solution folder).

Brz način za srediti to je držati assete na 2 mjesta odjednom - u solution (vjerojatno) i bin folderu. Još jedan način je napisati malu skriptu koja će kopirati assete u pravi folder (mislim da sam ja tako nešto napravio baveći se sa SDLom). Zatim, vjerojatno se može postaviti trenutni folder unutar opcija projekta.

No, od svih rješenja, meni se najviše sviđa korištenje WinAPIa za pronalaženje putanje trenutnog EXEa (postoji funkcija za to), i zatim korištenje tog stringa i naziva datoteke asseta za stvaranje apsolutne putanje pri učitavanju.
  • You know your project is in trouble when..
    ...when you wonder if you could optimize your fps counter function in order to gain extra fps...
    ...and you double your fps doing so.

User avatar
Denis
Sajentist on djuti!
Posts: 2618
Joined: Tue Aug 26, 2008 9:35 pm
Smallest prime number bigger than 20: 23

Re: SDL i Visual Studio

Post by Denis » Sat Apr 03, 2010 12:52 pm

Luka wrote:Razlog je to što se varijabla trenutnog foldera razlikuje u slučaju "običnog" pokretanja (trenutni folder = folder gdje je exe) i pokretanja preko VSa (ako se ne varam - solution folder).

Brz način za srediti to je držati assete na 2 mjesta odjednom - u solution (vjerojatno) i bin folderu. Još jedan način je napisati malu skriptu koja će kopirati assete u pravi folder (mislim da sam ja tako nešto napravio baveći se sa SDLom). Zatim, vjerojatno se može postaviti trenutni folder unutar opcija projekta.

No, od svih rješenja, meni se najviše sviđa korištenje WinAPIa za pronalaženje putanje trenutnog EXEa (postoji funkcija za to), i zatim korištenje tog stringa i naziva datoteke asseta za stvaranje apsolutne putanje pri učitavanju.
Upravo to zadnje radim. Dobijem path exea sa args[0], iz njega dobijem path. Sad se trenutno mučim sa spajanjem 2 stringa, tj. sa string varijablom i sa "hello.bmp"...

alma
Posts: 70
Joined: Tue Mar 10, 2009 7:39 am
Smallest prime number bigger than 20: 10000
Location: F.E.A.R

Re: SDL i Visual Studio

Post by alma » Sat Apr 03, 2010 5:55 pm

imam isti problem,moram uvijek kompajlati u VS pa onda pokretat iz foldera =/

User avatar
Luka
Posts: 1384
Joined: Tue Aug 26, 2008 3:32 pm
Smallest prime number bigger than 20: 23

Re: SDL i Visual Studio

Post by Luka » Sat Apr 03, 2010 8:06 pm

DragonSoul wrote: Upravo to zadnje radim. Dobijem path exea sa args[0], iz njega dobijem path. Sad se trenutno mučim sa spajanjem 2 stringa, tj. sa string varijablom i sa "hello.bmp"...
Auh, da, tako je još jednostavnije. Kad mi je zadnji put trebala adresa EXEa koristio sam nešto što je zahtijevalo modificirani main bez podrške za parametre; pa mi je ta WinAPI funkcija bila jedino rješenje. (iako, to rješenje s argvom nije najsigurnije jer prema C++ standardu to može biti bilo kakav identifikator programa)

Ako radiš sa string tipom iz <string> headera, ovako bi izgledao kod (~):

Code: Select all

string put = argv[0];
put = put.substr(0, put.find_last_of('\\')); // ili bolje, umjesto substr koristi erase
put += "ime_datoteke";
  • You know your project is in trouble when..
    ...when you wonder if you could optimize your fps counter function in order to gain extra fps...
    ...and you double your fps doing so.

User avatar
Denis
Sajentist on djuti!
Posts: 2618
Joined: Tue Aug 26, 2008 9:35 pm
Smallest prime number bigger than 20: 23

Re: SDL i Visual Studio

Post by Denis » Sat Apr 03, 2010 8:36 pm

Luka wrote:
DragonSoul wrote: Upravo to zadnje radim. Dobijem path exea sa args[0], iz njega dobijem path. Sad se trenutno mučim sa spajanjem 2 stringa, tj. sa string varijablom i sa "hello.bmp"...
Auh, da, tako je još jednostavnije. Kad mi je zadnji put trebala adresa EXEa koristio sam nešto što je zahtijevalo modificirani main bez podrške za parametre; pa mi je ta WinAPI funkcija bila jedino rješenje. (iako, to rješenje s argvom nije najsigurnije jer prema C++ standardu to može biti bilo kakav identifikator programa)

Ako radiš sa string tipom iz <string> headera, ovako bi izgledao kod (~):

Code: Select all

string put = argv[0];
put = put.substr(0, put.find_last_of('\\')); // ili bolje, umjesto substr koristi erase
put += "ime_datoteke";
Ja sam netko tko se low-leveu učio u C-u, tak da sam ja to fino vlastitom funkcijom riješio :p
Ugl, sad radi. Napravio sam mali header file s tom funkcijom, pathom, i load_image funkcijom, tak da sad radi lagano. Zahvaljujem na pomoći!

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest