@Arjen, you are definitely not the only one to experience strange thing with dll export . I copy here a comment from another post:
And this one is from the intel forum:
What you are seeing is that MSVC is ALSO emitting a name without the suffix - and Intel Fortran does this too. Why? Fortran does it because that allows you to declare a name simply EXTERNAL and pass it as an argument. I am not sure why MSVC is doing it as well.
It may be that when you mix bind(c) and !DEC$ directives the compiler gets ‘confused’ and exports twice the subroutine.
Can you make a dump of the .lib using dumpbin? (dumpbin /exports **.lib)?