本学期嵌入课上,老师留的作业是进行一个基于WinCE的嵌入式MFC程序开发。由于不是很熟悉WinCE的开发环境,之前掌握的好多读写文件的方法都不能很好的使用,会出现莫名的错误。几经摸索和尝试,终于试探出WinCE平台下的txt使用方法,源码及解释如下。
//写文件CStdioFile wFile //CFile::modeNoTruncate的含义是创建文件,且不清零 //若将CFile::modeNoTruncate替换为CFile::modeCreate,则代表以清零方法创建if(wFile.Open(_T("\\test.txt"), CFile::modeWrite|CFile::modeNoTruncate)){ USES_CONVERSION; CString str = _T(“hello world”) ; char * temp = T2A(str); //转换为字符串 wFile.SeekToEnd(); //跳转到txt已存的字符尾部 wFile.Write(temp, strlen(temp)); //写入wFile.Close();}
//读文件CStdioFile rfile CString str; if(rfile.Open(_T("\\test.txt"),CFile::modeRead)){ //只读 char rr[4096]; rfile.Read(rr,4096); USES_CONVERSION; str = rr; //字符型数组转换CString可直接用等于 OutputDebugString((LPCTSTR)str); //在底部调试窗口中输出字符串 rfile.Close()}
之前编程习惯不是很好,对文件进行操作后,总是忘记关闭文件。在这次开发中,我遇到了“a sharing violation occurred while accessing”这个错误。几经查找,才发现是在下一次的CStdioFile::Open()打开文件前,忘记用CStdioFile::Close()对文件进行关闭。