スタックの巻き戻しを使う方式に書き換えてみた。
 たしかにコッチの方が __finally よりスッキリするみたい

long *getBin(char *fname)
{long *mem=0;
struct DFILE{
FILE *fp;
DFILE(char *n) {fp=fopen(n,"rb");};
~DFILE(){ if(fp){fclose(fp); };}
}f(fname);

if( 0!=fseek(f.fp, 0, SEEK_END ) ) return 0;
long size=ftell(f.fp);
size=(size+3) &(-4);
if( 0!=fseek(f.fp, 0, SEEK_SET ) ) return 0;
mem =(long *) malloc( size );
fread(mem,size/4,4,f.fp);
return mem;
}