Bonjour,

Petit nouveau en C++, je cherche à charger des images à l'aide de la fonction suivante (inspirée d'un tutorial trouvé sur ce site) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void Sprite::modImage(const char* image)
{
	//Surface tampon qui nous servira pour charger l'image
	SDL_Surface* loadedImage = NULL;
 
	loadedImage = IMG_Load(image);
 
	//Si le chargement se passe bien
	if( loadedImage != NULL ) 
        {
		//Création de l'image optimisée
		_image = SDL_DisplayFormat( loadedImage );
 
		//Si l'image optimisée créée est bonne
    	        if( _image != NULL )
    	        {
                      Uint32 colorkey = SDL_MapRGB( _image->format, 0, 0, 0xff );
 
                      //On met tous les pixels de couleur R 0, G 0, B 0xFF transparent
                       SDL_SetColorKey( _image, SDL_RLEACCEL |    SDL_SRCCOLORKEY, colorkey );
    	        }
 
		//Libération de l'ancienne image
		SDL_FreeSurface( loadedImage );
	}
}
Ma seule modification importante est d'avoir remplacé le nom de fichier donné à IMG_load() par un "char*" plutôt qu'une "string" (mais dans la doc officielle l'argument est indiqué comme "char*").

Ce code fonctionne très bien sous Ubuntu, compilé avec Code::Blocks mais sous Windows et Visual C++ Express 9 le pointeur "loadedImage" reste vide malgré l'assignation avec IMG_load()...

Quelqu'un saurait-il d'où vient le problème?

Je précise évidemment que les images que je souhaite afficher se trouvent dans le même dossier que mon ".exe" et qu'elles ont le même nom que dans mon code...