Dear James,


>(1) I get one error:
>
>Xerces\xerces-c-src1_7_0\src\xercesc\util\Platforms\Win32\Win32PlatformUtils.cpp(92)

>
>: fatal error C1189: #error :  A transcoding service must be chosen
>
>What is the transcoding service?  Should I make it the same as the DLL
>(XML_USE_WIN32_TRANSCODER)?

>From the Xerces API doc:
      XMLTranscoder is for transcoding non-local code page encodings, i.e.
      named encodings. These are used internally by the scanner to
internalize
      raw XML into the internal Unicode format, and by writer classes to
convert
      that internal Unicode format (which comes out of the parser) back out
to
      a format that the receiving client code wants to use.

There are two possibilities:
XML_USE_WIN32_TRANSCODER - is used to handle windows code pages
XML_USE_ICU_TRANSCODER - ICU means "International Components for Unicode"
(http://oss.software.ibm.com/icu/)
      Using this define your software needs the C++ ICU library, too.


>(2) The following are defined in the DLL project...  does this seem
>correct?  There are lots of unused definitions.
>
>_CRTDBG_MAP_ALLOC,
>PROJ_SAX2,                          // I never find this in the src
>PROJ_XMLPARSER,         //  I never find this in the source
>PROJ_XMLUTIL,                  // never find this
>PROJ_PARSERS,              // never find this in src
>PROJ_SAX4C,                     // nope!
>PROJ_DOM,                        // not seen in the code
>PROJ_VALIDATORS,      // not used in the code
>XML_SINGLEDLL,              // not used in src
>WIN32,
>_WINDOWS,
>XML_USE_WIN32_TRANSCODER,    // used to select the transcoder... see
>question (1)
>XML_USE_WIN32_MSGLOADER,       // I am using the INMEMORY message
loader...
>there should be no problems here?
>XML_USE_NETACCESSOR_WINSOCK   // Used to conditionally include some
>*net*.hpp files... what does this do?  Should I define this?
>
>And I have only defined the following for the static lib...
>
>WIN32,
>_MBCS,    // generic MS text types... do not think this matters
>_LIB,
>XERCES_HAS_LIB,     // special var to make a static lib rather than a DLL
>XML_USE_INMEMORY_MSGLOADER

You already changed the defines in file
xerces\src\xercesc\util\Compilers\VCPPDefs.hpp:
      #ifdef XERCES_HAS_LIB
            #define PLATFORM_EXPORT
            #define PLATFORM_IMPORT
      #else
            #define PLATFORM_EXPORT     __declspec(dllexport)
            #define PLATFORM_IMPORT     __declspec(dllimport)
      #endif

In file xerces\src\xercesc\util\XercesDefs.hpp the PROJ_xxx are defined
      #if defined(PROJ_XMLPARSER)
      #define XMLPARSER_EXPORT PLATFORM_EXPORT
      #else
      #define XMLPARSER_EXPORT PLATFORM_IMPORT
      #endif

If XERCES_HAS_LIB is not defined the PROJ_xxx defines are needed on
creating a dll to export the classes and functions.
On creating an application do not use the PROJ_xxx defines to import the
dll classes and functions.

If XERCES_HAS_LIB is defined there's no difference so you may use it or
not.

I didn't find XML_SINGLEDLL in the source either. It's only inside the
project settings.

For your static lib you should define following:
      WIN32,_MBCS,_LIB,XERCES_HAS_LIB,XML_USE_INMEMORY_MSGLOADER,
XML_USE_WIN32_TRANSCODER

>(3) What is the XML_USE_NETACCESSOR_WINSOCK?  What does this do?
I use this define in my project settings but I'm not sure what it's good
for.


Regards,
Thomas


[EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to