控制台应用程序中调用CFileException 的GetErrorMessage方法时出现“Debug Assertion Failed”错误时的解决办法

这两天帮测试一位同事写的一个从dat文件中读取数据的方法,该方法中打开文件的代码大致如下:  

CStdioFile file;    //文件流

CFileException fileException;  //文件异常类  

 if (file.Open(strFileName, CFile::modeRead, &fileException) == 0)  

{  

 char cBuf[255]; 

 fileException.GetErrorMessage(cBuf, 255);   

m_sLogStr.Format("文件打开错误:%s", cBuf);   

WriteLog(strLogFileName);   return FALSE;  

file.Abord();

}

在控制台程序框架中测试到fileException.GetErrorMessage(cBuf, 255);   方法时总是出现

Debug Assertion Failed错误,引起这种错误的原因应该某个Assert语句失败。我查了些资料,原因大概是CFileException是MFC的东西,需要MFC的支持;该问题的解决方法是: 

头文件中 #include  

在main函数中 加入 

// 初始化MFC
 AfxWinInit(::GetModuleHandle(NULL), NULL,
               ::GetCommandLine(), 0);

你可能感兴趣的:(控制台应用程序中调用CFileException 的GetErrorMessage方法时出现“Debug Assertion Failed”错误时的解决办法)