diff --git a/xs/Build.PL b/xs/Build.PL index 81a059caf..5c58747dd 100644 --- a/xs/Build.PL +++ b/xs/Build.PL @@ -23,7 +23,8 @@ my $build = Module::Build::WithXSpp->new( )}, # _GLIBCXX_USE_C99 : to get the long long type for g++ # HAS_BOOL : stops Perl/lib/CORE/handy.h from doing "# define bool char" for MSVC - extra_compiler_flags => [qw(-D_GLIBCXX_USE_C99 -DHAS_BOOL)], + # NOGDI : prevents inclusion of wingdi.h which defines functions Polygon() and Polyline() in global namespace + extra_compiler_flags => [qw(-D_GLIBCXX_USE_C99 -DHAS_BOOL -DNOGDI)], # Provides extra C typemaps that are auto-merged extra_typemap_modules => { diff --git a/xs/src/myinit.h b/xs/src/myinit.h index c8fbf98f8..369dd0655 100644 --- a/xs/src/myinit.h +++ b/xs/src/myinit.h @@ -1,6 +1,9 @@ #ifndef _myinit_h_ #define _myinit_h_ +// this needs to be included early for MSVC (listing it in Build.PL is not enough) +#include + extern "C" { #include "EXTERN.h" #include "perl.h"