我目前在 Windows 7 64 位上使用 hdf5 1.8.15。
我的软件的源代码使用utf8编码保存在文件中。
一旦我调用任何支持 std:: string 的 hdf5 函数,输出就会变得神秘
但如果我使用const char*
代替std::string
,一切正常。这也适用于文件名。
这是一个简短的示例:
std::string filename_ = "test.h5";
H5::H5File file( filename_.c_str(), H5F_ACC_TRUNC); // works
H5::H5File file( filename_, H5F_ACC_TRUNC); // filename is not readable or
// hdf5 throws an exception
我猜想这个问题是由我的源文件和hdf5中使用的不同编码引起的。但我对此不确定,并且没有找到允许使用的解决方案std::string
s。我将不胜感激任何有助于我解决这个问题的想法。
我也遇到了同样的问题,并通过将所有 std::string 或 h5std_string 更改为字面意义来修复它:
5File file("myFile.h5", H5F_ACC_TRUNC);
Or use string.c_str()
将字符串更改为const char
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)