Ah, so it notices what's on your PATH, INCLUDE, and LIB, and deduces which compiler-specific settings to use based on that?Yep - that's about it. SetEnv.cmd sets up the path to 'nmake', 'cl' and 'link' - and it also sets the lib and include env vars to point to the standard headers and libs. Then it's just a matter of adding the appropriate locations to path, lib and include so that the libxml2, libiconv and zlib stuff also gets found.
Does that mean you have a working module you can share?
Yes.
Binary? or a CPAN packaging that will "make" cleanly on this platform?I could provide either binary or source. The source builds cleanly if you manually run 'perl Makefile.PL', 'nmake test' and 'nmake install' (assuming your LIB, INCLUDE and PATH env vars are set appropriately). I expect it builds ok using the automated CPAN procedure, too ... but that remains untested.
would one have to avoid calling Reader()?No - I've just built (the latest) libxml2-2.7.3 using "the same compiler" (ie using the Platform SDK for Windows Server 2003 R2 compiler), and that fixes the problem with Reader() as expected.
I don't have any webspace to upload this stuff to - so I'd have to email it (which doesn't bother me). However, if you have the SDK compiler, building everything yourself is no big deal. Building libxml2-2.7.3 was fairly straight forward - the instructions are in win32/Readme.txt. The only additional thing I had to do that's not mentioned in the Readme.txt was:
1) Create a copy of libiconv.lib named iconv.lib;
2) In win32/Makefile.msvc, change
LIBS = $(LIBS) kernel32.lib
to:
LIBS = $(LIBS) kernel32.lib bufferoverflowU.lib
When it came to installing the library with
nmake /f Makefile.msvc install, the process terminated with an error - but everything needed got installed ok anyway.
To be properly thorough, I ought to rebuild zlib and iconv using my SDK compiler (which would get rid of the msvcr80.dll dependency completely), but everything sems to be working fine without going to those lengths - all tests are passing.
Let me know how you want to proceed
Cheers,
Rob