dans une chaine, le caractère \ s'écrit \\ donc remplace
char *filename="c:\test.gif";
par
char filename[]="c:\\test.gif";
(de toute manières, il faut vérifier ce que renvoie fileLocal.Open (il faut aussi ajouter CFile::modeCreate si le fichier n'existe pas, sinon plante encore)