В настоящее время я использую hdf5 1.8.15 в 64-разрядной версии Windows 7. Исходный код моего программного обеспечения сохраняется в файлах с использованием кодировки utf8.
Как только я вызываю любую функцию hdf5, поддерживающую std::string, вывод становится загадочным.
Но если я использую 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. Я был бы признателен за любую идею, которая поможет мне в этом вопросе.