msvc requires this because functions exported from .lib files have a different name when the implementation is in a .dll file.