in reply to Re: Building C++ extensions under MSVC?
in thread Building C++ extensions under MSVC?

Correct. And it turns out it was the crucial piece that was missing. The problem appears to have been the order in which the #includes were listed. I had:
#ifdef __cplusplus extern "C" { #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifdef __cplusplus } #endif #include <iostream> #include <string> //plus a bunch more standard C++ includes // rest of C++ and XS code below.
These errors went away just by switching the order of the includes, i.e.:
#include <iostream> #include <string> //plus a bunch more standard C++ includes #ifdef __cplusplus extern "C" { #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #ifdef __cplusplus } #endif // C++, XS code below
Now, don't ask my why this worked, I just know that it did. I guess -- but this is just a guess -- it could be some Perl headers interfering with use of standard headers of the same name or some such.

--DrWhy

"If God had meant for us to think for ourselves he would have given us brains. Oh, wait..."