今天用MFC界面写了一个程序用到了文件的打开,测试的时候发现,点击打开按钮后,第一次可以正确读取文件路径,第二次就会报如上错误。
理了一下思路发现,第一次打开按钮后,程序open了一个CFile,此时还没有进行后续的数据处理(意思是还没有走到文件close这一步),又点击了打开按钮,又open新的file,自然是会出错的,解决方法如下:
定义一个BOOL型的全局变量bInFile,对他初始化为0,定义为bInFile = InFile.Open(参数1....参数n...)
在open按钮的响应函数初始时加上如下代码:
if(bInFile>0)
InFile.Close();
这样就保证每次打开文件之前,此程序里当前没有已open的文件,所有的都是close状态,就不会出错了。