fix msvc compile