fix some compile error for msvc