Código C:
Ver originalBITMAP *buffer = create_bitmap(800,600); //ponemos las dimensiones de la foto. Las imagenes deben ir siempre en la carpeta del proyecto
BITMAP *fondo1 = load_bitmap("YSLnuevologo.bmp",NULL); //Cargamos las imagenes del menu
BITMAP *fondoC = load_bitmap("YSLnuevologoC.bmp",NULL);
BITMAP *fondoS = load_bitmap("YSLnuevologoS.bmp",NULL);
BITMAP *cursor = load_bitmap("cursor.bmp",NULL); //imagen del cursor
¿Por qué no verificas si esos punteros son válidos? Entiendo que si load_bitmap no es capaz de cargar la imagen por la razón que sea devolverá un puntero nulo. Un posible problema en este punto sería que el directorio de trabajo de la aplicación no coincide con la ubicación de los ficheros de imagen.
Por otro lado, fíjate que tienes comentada una línea casi al final del programa... lo mismo tiene algo que ver con el hecho de que la ventana se abra y se cierre casi al mismo tiempo.
Y, para terminar, el código deberías decorarlo para que sea legible. Elige la opción que corresponda en el desplegable Highlight y pon el código dentro de las etiquetas que te aparecerán en el editor.
Un saludo