我最近将Hdf5DotNet包装器库从1.8.6升级到1.8.7,并注意到已删除H5F.flush()方法。有人知道这背后的原因吗?

最佳答案

我没有看到任何关于为什么将其删除的迹象-从我收集的内容来看,它仍然存在于本机DLL和C样式 header 中-参考手册并未将其标记为已弃用或类似。

从托管代码(例如open函数)调用时,V 1.8.7似乎具有一些“特殊效果”,例如,使堆栈不平衡(由于与调用约定不一致)...我没有尝试过,但重新添加了H5F.flush到.NET包装器中是相当容易的...如果您确实需要它,我建议您这样做...如果与不平衡的堆栈相比,这会产生更大的问题,则始终可以通过使用“本地代理DLL”来解决正确的调用约定,并使用.NET包装器中的约定。

编辑-根据评论:

可用的.NET包装器似乎很弱,有时不完整等。-由于源可用,因此实现.NET包装器似乎是一个可行的任务。

作为起点,请参见:

  • http://hdf5.net/downloads/HDF5DotNet-src.zip
  • http://www.hdfgroup.org/ftp/HDF5/hdf5-1.8.7/src/
  • 关于.net - 从HDF5DotNet 1.8.7中删除了H5F.flush()吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6153063/

    10-10 13:21