Supongo que estás tocando el emulador de Gameboy de Wiz, cualquiera de los que están basados en gnuboy. Por eso, en contra de lo que dice jduranmaster, la función rc_getstr() está correcta (es una función interna de gnuboy)
hi-ban, no veo nada bien en las líneas que has marcado...
Amos a vel:
1.- entiendo que skndir es una cadena, esto es, un array de chars. Por lo tanto no es un char, sino un "char *".
Código:
246. char *skndir;
247. skndir = rc_getstr("borderdir");
Acuerdate también de liberarlo cuando acabes de usarlo, o te empezará a crecer la memoria descontroladamente.
2.- En C (porque esto es C, ¿verdad?) no se puede concatenar cadenas a piñón, a menos que sean constantes (y skndir no es una constante). Tienes que crear un buffer, concatenar las cadenas
por ejemplo con sprintf y liberar el buffer cuando acabes.
Código:
252. char *buffer=malloc(sizeof(char)*128);
253. sprintf(buffer, "%s%s%s", skndir, DIRSEP, "border1.bmp");
254. border = SDL_LoadBMP(buffer);
255. sprintf(buffer, "%s%s%s", skndir, DIRSEP, "border2.bmp");
256. border2 = SDL_LoadBMP(buffer);
257. free(buffer);
Y a todo esto es más que conveniente añadir control de errores, tanto a los malloc() como a los SDL_LoadBMP() También es una forma insegura de trabajar a menos que controles el tamaño de skndir, o te arriesgas a un ejecución arbitraria de código por buffer overflow (un posible atacante podría meter un "virus" simplemente cambiando el archivo de configuración donde se lee skndir) Aunque en Wiz de esto último yo no me preocuparía.
Marcadores