Se ho capito, intendi dire che la open
FILE *fp=fopen(filenameopen,"rb+");
fallisce?
Hai controllato il valore della filenameopen in modalita' debug (passo passo) prima che venga passata alla fopen ?
E inoltre, prova a scrivere subito dopo la fopen
int le = GetLastError();
e mostra il valore della le dopo la chiamata.