我最近将我的Hdf5DotNet包装器库从1.8.6升级到1.8.7,并注意到H5F.flush()方法已被删除。有人知道这背后的原因吗?
答案 0 :(得分:1)
我没有看到任何关于为何删除它的指示 - 从我收集它仍然存在于本机DLL和C风格的标题中 - 参考手册没有将其标记为已弃用或类似。
V 1.8.7似乎有一些“特殊效果”,比如在从托管代码调用时(例如open函数)调用堆栈(由于与调用约定有些不一致)...我没试过但是将H5F.flush
添加回.NET包装器是相当容易的...如果你确实需要它,我建议你去做...如果这会产生比不平衡堆栈更大的问题,这总是可以通过强制执行来克服“本机代理DLL”具有正确的调用约定并使用.NET包装器中的那些。
编辑 - 根据评论:
可用的.NET包装器似乎相当弱,有时不完整等等。 - 由于源可用,实现.NET包装器似乎是一项可行的任务。
作为起点,请参阅: