You should prefix all the Xerces symbols with XERCES_CPP_NAMESPACE_QUALIFIER (or XERCES_CPP_NAMESPACE:: if you want a shorter macro), like in

char *PrintDOMTree(XERCES_CPP_NAMESPACE_QUALIFIER DOM_Node &domNode, int &nLength);

or be sure that you added the XERCES_CPP_NAMESPACE_USE macro in every header.

Alberto

At 07.55 23/12/2003 -0700, Stephanie L Milchak wrote:

Okay, but I'm not having a problem with class InputSource... I'm still having the problem linking to a function that is defined in one of our hpp files.

In my header file, I have this statement:
char *PrintDOMTree(DOM_Node &domNode, int &nLength);

PrintDOMTree is defined in our Print.cpp file.

When using the xerces namespace, I get this error:
Utils.exp : error LNK2001: unresolved external symbol "char * __cdecl PrintDOMTree(class DOM_Node &,int &)" (?PrintDOMTree@@YAPADAAVDOM_Node@@[EMAIL PROTECTED])


When I use

 XERCES_CPP_NAMESPACE_BEGIN
        class InputSource;
        XERCES_CPP_NAMESPACE_END

instead of

        namespace xercesc {
        class InputSource;
        }

There is no difference, as is expected.

I can't understand why our interally defined PrintDOMTree is giving a linking error, even if I qualify DOM_Node to the xerces namespace.

Thanks,

Stephanie Milchak
Software Engineer
WebSphere Business Integration
Research Triangle Park, NC


"Adam Heinz" <[EMAIL PROTECTED]>


12/23/2003 09:49 AM
Please respond to xerces-c-dev

        To:        <[EMAIL PROTECTED]>
        cc:
        Subject:        RE: Disabling C++ Namespace



Well, if you look in the headers, the documentation is incorrect (just submitted as bug 25727). Alberto suggested that you use:

XERCES_CPP_NAMESPACE_BEGIN
class InputSource;
XERCES_CPP_NAMESPACE_END

instead of

namespace xercesc {
class InputSource;
}

Adam Heinz
Development Consultant
Exstream Software


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



Reply via email to