fix macro redefinition when compiling with msvc