C++ Visual Studio 2012中的HDF5DotNet

C++ Visual Studio 2012中的HDF5DotNet,c++,visual-studio-2012,hdf5,C++,Visual Studio 2012,Hdf5,我正在尝试编译HDF5DotNet库。我使用的是来自的“HDF5DotNet源代码和示例” 我可以在虚拟机中使用VisualStudio2008和2010编译库。我仍然需要在Visual Studio 2012中运行它,并出现以下错误: Error 1: error C2668: 'System::Array::Copy' : ambiguous call to overloaded function ObjectReference.cpp, 30, 1, HDF5DotNet Error 2

我正在尝试编译HDF5DotNet库。我使用的是来自的“HDF5DotNet源代码和示例”

我可以在虚拟机中使用VisualStudio2008和2010编译库。我仍然需要在Visual Studio 2012中运行它,并出现以下错误:

Error 1: error C2668: 'System::Array::Copy' : ambiguous call to overloaded function ObjectReference.cpp, 30, 1, HDF5DotNet

Error 2: error C2668: 'System::Array::Copy' : ambiguous call to overloaded function RegionReference.cpp, 30, 1, HDF5DotNet

IntelliSense: more than one instance of overloaded function "System::Array::Copy" matches the argument list:
- function "System::Array::Copy(System::Array ^sourceArray, System::Array ^destinationArray, int length)"
- function "System::Array::Copy(System::Array ^sourceArray, System::Array ^destinationArray, long long length)"

我确实理解这个错误,但我不知道如何避免它。该应用程序目前是为x86构建的,但我希望以后可以选择编译x64的dll。

只需将常量键入int即可

Array::Copy(a, m_rr, (int)H5R_DSET_REG_REF_BUF_SIZE);

只需将常量转换为int

Array::Copy(a, m_rr, (int)H5R_DSET_REG_REF_BUF_SIZE);

我差点忘了在这里发布这个问题。你只需要输入传递的变量。我差点忘了在这里发布这个问题。你只需要对传递的变量进行类型转换,但据我所知,RobaL并不编译他的代码。你认为这是原代码中的错误吗?谢谢!欢迎你这么说。我几个月前就已经做过打字了。忘记发布解决方案了。事实上,我直接从网页上获取了代码,所以问题出在库本身。但据我所知,RobaL并不编译他的代码。你认为这是原代码中的错误吗?谢谢!欢迎你这么说。我几个月前就已经做过打字了。忘记发布解决方案了。事实上,我直接从网页上获取了代码,所以问题出在库本身。