很多童鞋问我如何把文件包含进MFC里 在DoModal后自动释放文件 我去谷歌了半天 从某位大神里找到了转化文件为数组的代码 略作修改 写成了一个函数 以下为实现这个功能的具体步骤

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1.转化文件 贴代码 

 1 BOOL ToArray(CString file)
 2 {
 3     FILE *v_fpLog, *fp;
 4     int fSet = 0, fEnd = 0, i, j;
 5     int filelen = 0, num, last, r;
 6     char *pb, ch[6], cnum[11];
 7     if ( (v_fpLog = fopen( file , "rb+")) == NULL || (fp = fopen( "结果.h" , "w+a+")) == NULL) 
 8     {
 9         return FALSE;
10     }
11     else
12     {
13         fseek( v_fpLog, 0, SEEK_SET );
14         fSet = ftell( v_fpLog );
15         fseek( v_fpLog, 0, SEEK_END );
16         fEnd = ftell( v_fpLog );
17         pb = (char *)malloc(fEnd - fSet );
18         fseek( v_fpLog, 0, SEEK_SET );
19         fread(pb, fEnd - fSet, 1, v_fpLog);
20         fwrite("unsigned char Array[", 23, 1, fp);
21         memset(cnum, 0, 11);
22         itoa(fEnd-fSet, cnum, 10);
23         fwrite(cnum, sizeof(cnum), 1, fp);
24         fwrite("] = { ", 6, 1, fp); 
25         fwrite("\n", 2, 1, fp);//////
26         num = (fEnd-fSet)/16;
27         last = (fEnd-fSet)%16;
28         for(i = 0; i < num; i++)
29         {
30             for(j = 0; j < 16; j++)
31             {
32                 memset(ch, 0, 6);
33                 r = (int)pb[j + 16 * i];
34                 r = r & (0xFF);
35                 sprintf(ch, "0x%02x,", r);
36                 r = fwrite(ch, sizeof(ch), 1, fp);
37             }
38             fwrite("\n", 2, 1, fp);
39         }
40         for(i = 0; i < last; i++)
41         {
42             r = (int)pb[i + 16 * num];
43             r = r & (0xFF);
44             sprintf(ch, "0x%02x,", r);
45             fwrite(ch, sizeof(ch), 1, fp);
46         }
47         fwrite("}", 1, 1, fp);
48         fwrite(";", 2, 1, fp);
49         free(pb);
50         fclose(v_fpLog);
51         fclose(fp);
52     }
53     return TRUE;
54 }

把文件路径传入 file 变量 生成"结果.h" 文件

2.将文件加入工程 并INCLUDE该文件 

3.贴释放代码

1 CFile file;
2 file.Open("导出文件名",CFile::modeCreate|CFile::modeWrite);
3 file.Write(array,sizeof(array));
4 file.Close();
5 AfxMessageBox("导出完成");

4.调用文件

*************************************************************************************

最后 注意事项 如果所需转化文件大于1MB 建议分几个.h进行转换 如果实在不想麻烦 就把Project->Settings->C/C++->Project Options里加上 /Zm 1000

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++