我有一个VC++应用程序,在我的应用程序中,我有一些基本的文件操作。
以下是默认代码
CStdioFile cFile;
CFileException e;
CString sReport;
CString sHtmlfile = "testreport.html"
OutputDebugString((sHtmlfile));
if (!cFile.Open(sHtmlfile,CFile::modeCreate | CFile::modeWrite, &e ))
{
}问题是我的应用程序每隔几分钟就执行一次这段代码。它工作得很好。
在多次运行代码之后,cFile.Open()函数失败。我尝试获取错误消息
TCHAR szError[1024];
e.GetErrorMessage(szError,1024);
OutputDebugString((szError));具有讽刺意味的是,szError错误消息是“没有发生错误”。
当我重新启动我的应用程序时,这又会起作用。知道为什么会发生这种情况吗。
提前谢谢。
发布于 2010-03-24 17:31:04
如果你忘记关闭你的文件,它就会从文件描述符中出来。当你退出你的应用程序时,它们都会关闭,然后你可以再次运行它。检查您的文件是否已关闭。
好的。如果不是上面的情况,那会是什么呢?您从cFile.Open得到了错误消息,因此我们可以相信它是准确的。
我不确定如果当前进程已经打开了另一个同名文件,或者您试图打开一个名称陌生的文件,比如空字符串,会发生什么情况。要解决这些问题,您还可以打印出打开时出现错误的文件的名称(还可以跟踪未发生错误的情况)。
https://stackoverflow.com/questions/2506485
复制相似问题