Fix warnings reported by MSVC for the public API
Allow overriding dynamic vs static MSVCRT
Add missing forward declaration needed for older versions of GCC