in reply to Building C++ extensions under MSVC?

Your baby example is incomplete.
  • Comment on Re: Building C++ extensions under MSVC?

Replies are listed 'Best First'.
Re^2: Building C++ extensions under MSVC?
by DrWhy (Chaplain) on Jul 18, 2006 at 22:03 UTC
    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..."