I have a problem compiling when I include DefaultHandler.hpp.
I'm rather baffled as to the nature of the problem, but it
seems to be related to a #define that I'm using to specify
the export class for Win32.
The following code compiles fine:
> #ifndef MDP_XMLPARSER
> #define MDP_XMLPARSER
>
> #include <xercesc/sax2/DefaultHandler.hpp>
>
> #include "Support.h"
> #include "ManifestElement.h"
>
> #include "exports/XMLParser_export.h"
>
> class XMLParseResult
> {
> };
with XMLParser_export.h as follows:
> #ifndef XMLPARSER_EXPORT
> #define XMLPARSER_EXPORT
>
> // <library name>_EXPORTS is defined by cmake when
> // the library must be built with symbols exported
>
> #if defined (WIN32) && defined (BUILD_SHARED_LIBS)
> #pragma warning(disable: 4251)
> #if defined(XMLParser_EXPORTS)
> #define XMLPARSER_EXP __declspec(dllexport)
> #else
> #define XMLPARSER_EXP __declspec(dllimport)
> #endif
> #else
> #define XMLPARSER_EXP
> #endif
>
> #endif // XMLPARSER_EXPORT
However, if I change the class declaration to:
> class XMLPARSER_EXP XMLParseResult
> {
> };
then g++ gives me the following message:
> src/lib/XMLParser.h:11: error: function definition does not declare parameters
and a similar one from VSC++.
Both versions compile OK when I don't include DefaultHandler.hpp
Can anyone see what I'm screwing up, if anything ?
--
Regards
Steve Collyer
Netspinner Ltd