Hi there. Here are few things regarding the Win32/MSCC build of libxml2. The patches are made against libxml2-2.3.6. 1. MSVC project files are updated to contain newly made source files. The project files are in the tarball named 'dspfiles.tar.gz', compressed in order to avoid CRLF->LF conversion. These files must be in CRLF format, because the Microsoft's IDE does not like it otherwise. All .dsp files from the tarball belong under win32/libxml2. 2. The file 'libxml2.def.src' is a pseudo-source file used to generate the .DEF for the MS linker. The above project files assume it is there and handle it properly without further intervention. It belongs under win32/libxml2 as well. With this, we can finally make a usable shared library under Win32/MSCC platform. The library exports 736 symbols and if that isn't enough... I would like to thank everyone for ideas and thoughts regarding this issue. 3. I made small change to include/libxml/xmlversion.h. Namely, this file is included by the above 'libxml2.def.src' and then preprocessed. After preprocessing, a small piece of code remains in the generated .DEF file and MS linker feels slightly offended by that. The piece of code in question is a simple function prototype: extern void xmlCheckVersion(int version); A small modification makes it conditional: #ifndef LIBXML2_COMPILING_MSCCDEF extern void xmlCheckVersion(int version); #endif /* LIBXML2_COMPILING_MSCCDEF */ This 'LIBXML2_COMPILING_MSCCDEF' macro is defined in 'libxml2.def.src'. Under all other platform/compiler combinations, it is always undefined. The patch can be found in xmlversion.diff 4. include/win32config.h now has the mappings for snprintf and vsnprintf, which are present in Microsoft's C runtime under different names. The patch is in win32config.diff 5. xmllint.c received a small modification which makes it compile and work under Win32/MSCC correctly, with disabled timings. The patch is in xmllint.diff I wish you all a nice weekend Igor
Attachment:
dspfiles.tar.gz
Description: Binary data
Attachment:
libxml2.def.src
Description: Binary data
Attachment:
win32config.diff
Description: Binary data
Attachment:
xmllint.diff
Description: Binary data
Attachment:
xmlversion.diff
Description: Binary data