我升级到 MS VC++ 2010 (Visual Studio Professional) 和 boost 1.45.0 但我仍在尝试使用用 MS VC++ 2008 构建的 HDF5 1.8.4p1 和 boost 1.39.0;一切都很好(我明确提供了我的 HDF5 lib 路径中所需的 boost_zlib-vc90*.[lib/dll])。但是当我运行时,我在 HDF5 库中收到以下运行时错误:
Unhandled exception at 0x... in <exec>: 0x... : Access violation reading location 0xffffffffffffffff
该错误似乎与 HDF5 库明显隔离。访问冲突发生在下面函数调用内的 H5File(...) 构造函数中(我通过分成两行代码来确认它)。我也尝试更改 HDF5 文件访问标志,但无济于事:
m_file.reset(new H5::H5File(path, H5F_ACC_RDONLY));
这里 m_file 的类型是:
boost::shared_ptr<H5::H5File>
除了使用 MS VC++ 2010 和 boost_zlib 1.45 构建 HDF5 库之外,我没有其他办法了吗?
编辑:
只是想跟进一下,我最终在 MS VC++ 2010 上构建了 HDF5 库(有点痛苦,但使用 CMake 路线解决了问题),我的应用程序现在运行良好。再次感谢。