単純なテストは
通るんですよね...#include <stdio.h>#include "fileaccess.c"int main(int argc, char *argv[]){ OSD_FILE osd_f,*p_osd_f; char fn[512]; p_osd_f=&osd_f; memset(fn,0,sizeof(fn)); strcpy(fn,argv[1]); if (osd_fopen(p_osd_f,fn,GENERIC_READ)!=0) { printf("GENERIC_READ open error\n"); osd_fclose(p_osd_f); return 1; }else { printf("GENERIC_READ open OK %x\n",GENERIC_READ); } osd_fclose(p_osd_f); if (osd_fopen(p_osd_f,fn,GENERIC_READ | GENERIC_WRITE)!=0) { printf("GENERIC_READ | GENERIC_WRITE open error\n"); osd_fclose(p_osd_f); return 1; }else { printf("GENERIC_READ | GENERIC_WRITE open OK %x\n",GENERIC_READ | GENERIC_WRITE); } osd_fclose(p_osd_f);}GENERIC_READ open OK 80000000GENERIC_READ | GENERIC_WRITE open OK c0000000とまぁ、こうならないと困るんだけど。※osd_fopenは、独自関数。と言うことで、ソースの見直しに入ります。