我有一个gui控制程序,可将数据写入hdf5文件。这是一个gui程序,所以我没有使用std :: cerr或标准流,这似乎是HDF5假定的。我可以使用getDetailMsg(),但是尽管有这个名称,但它却给了我一个非常模糊的错误消息。我想获取printErrorStack ( FILE* )
提供的信息,但是由于它需要输入FILE*
,因此实时检索并向gui用户报告确实很尴尬。我可以这样记录错误信息:
catch ( H5::Exception& err )
{
FILE * pFile;
fopen_s( &pFile, "H5ErrLog.txt", "a" );
if ( pFile != NULL )
{
err.printErrorStack ( pFile );
fclose ( pFile );
}
}
然后我想我可以重新打开文件并将其读取为字符串,但这似乎是一个笨拙的解决方案。有更好的方法吗?