Я использую Microsoft Visual Studio 2008 (HDF5 v1.8.12), и у меня есть проблемы с каждой функцией H5std_string в качестве аргумента.Проблемы с stdstring и hdf5
Это даже случай, когда я запускаю файл примера "create.cpp" https://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/c++/examples/create.cpp
Это дает мне ошибку: .... \ H5F.c линия 1466 в H5Fcreate() : имя файла недействителен ошибка фиксируется, когда я заменяю FILE_NAME
с FILE_NAME.c_str()
и DATASET_NAME
с DATASET_NAME.c_str()
, подобным образом я получаю сообщение об ошибке при запуске:
H5::Attribute attr = group.openAttribute("type");
H5std_string attr_content;
attr.read(attr.getStrType(), attr_content);
однако следующий код работает
char buf[1024];
H5::Attribute attr = group.openAttribute("type");
attr.read(attr_date.getStrType(), buf);
Я думаю, что вы должны назвать 'getDataType()' вместо 'getStrType()' – user1
с помощью getDataType() не помогает. Проблема связана с использованием stdstring. Функции, использующие 'char *', работают нормально, однако я получаю сообщение об ошибке, когда я использую соответствующую функцию, принимающую 'H5std_string' в качестве аргумента. – user2306172
Похож на этот ответ: http://stackoverflow.com/questions/32072272/using-stdstring-in-hdf5-creates-unreadable-output –