DLL Entry point not found


#1

Hello,

I am having trouble with building my own application using Visual Studio and CMake. The full list is also described here:

As of now, my simple program compiles but when I execute it, the error
“The procedure entry point H5Pset_virtual could not be located in the dynamic link library […]\hdf5_cpp.dll.”
appears.

Edit: I updated from 1.10.1 to 1.10.4, but similar behavior. The procedure entry point is different though, now it is H5P_CLS_DATASET_ACCESS_ID_g.

Any ideas? Thanks a lot in advance,
Michael


#2

Micheal, can you describe your setup a little bit? Which Windows version? Which binaries? Static? Dynamic?

H5Pset_virtual is in hdf5.dll (not hdf5_cpp.dll). You can verify that by running dumpbin /exports hdf5.dll | findstr H5Pset_virtual. You can find other symbols/exports the same way. (dumpbin /symbols)

Best, G.


#3

Hello gheber,

thanks for your answer. I think I have just sorted it out, thanks to a user on stackoverflow. I am on Windows 10, using Visual Studio 15 2017, CMake 3.10, and HDF5 1.10.4.

After dynamic linking I got this error, apparently due to another hdf5.dll from a Paraview installation on my computer.

I am trying static linking now in order to avoid this collision.

EDIT: Static linking works now and dynamic linking depends on the PATH. Is static linking a reasonable solution in such a situation or what is the preferred approach to handle such a situation?

Michael