好的,我有从官网下载的HDF5库,还有几个DLL,包括hdf5dll.dll和hdf5_hldll.dll。
我有一些我认为是本地调用的包装器,在我的类H5
、、、和。来自 H5.cs 的示例:H5LT
H5F
H5T
namespace HDF5
{
using hid_t = System.Int32;
using herr_t = System.Int32;
using hsize_t = System.UInt64;
using size_t = System.UInt32;
// hbool_t is 0:false, +:true
using hbool_t = System.UInt32;
// htri_t is 0:false, +:true, -:failure
using htri_t = System.Int32;
public class H5
{
const CharSet StringMarshallingType = CharSet.Ansi;
const string DLLNAME = "hdf5dll.dll";
///* Functions in H5.c */
//H5_DLL herr_t H5open(void);
[DllImport(DLLNAME,
CharSet = StringMarshallingType)]
public static extern herr_t H5open();
在 Program.cs 中,我H5.H5open();
使用BadImageFormatException
. 我需要不同的 DLL 吗?方法签名看起来不对吗?
作为下一步,我想在 C# 中得到它:http ://www.hdfgroup.org/HDF5/Tutor/h5lite.html 。
操作系统: Windows 7 64 位
环境: Visual Studio 2008 Professional
更新:我不知道这是否相关,我不记得我的环境是否是 VS2008 SP1,但这个问题可能是解开谜团的关键。我现在正试图在家里重复 32 位 VS 2010 的场景。