Hi to all,
I'm trying to read an xml document from a string with the following code:

        char* szTest = "<?xml version='1.0'
encoding='ascii'?><Ds3DDragDropData><Items><DbItem><Type>FURN</Type><ID>518<
/ID></DbItem></Items><DropOptions /></Ds3DDragDropData>";

        int nDataBytes = strlen(szTest);
        MemBufInputSource memBufIS(
                (const XMLByte*)szTest
                , nDataBytes
                , "ds3ddddata"
                , false
                );
        XercesDOMParser parser = new XercesDOMParser;
        DOMTreeErrorReporter *errReporter = new DOMTreeErrorReporter();
        parser->setErrorHandler(errReporter);
        bool errorsOccured = false;
        try
        {
                parser->parse(memBufIS);
        }
        catch (const OutOfMemoryException&)
        {
                errorsOccured = true;
        }
        catch (const XMLException& e)
        {
                errorsOccured = true;
        }
        catch (const DOMException& e)
        {
                errorsOccured = true;
        }
        catch (...)
        {
                errorsOccured = true;
        }
        if (errReporter->getSawErrors())
                errorsOccured = true;
        delete errReporter;
        if (!errorsOccured)
        {
                // Do something
        }
        delete parser;

If I compile the project in debug mode everything works fine; if I compile
in release mode I get an access violation in line
"parser->parse(memBufIS);"; if I read the same data from file everything
works, both in debug and release mode.
I'm using Xerces-C 3.1.1, Visual Studio 2008. 
Am I doing something wrong or is there a bug?

Thanks in advance,
Andrea Pierini 

_____________________________________________

Andrea Pierini
Maticad s.r.l. - www.maticad.it
E-Mail: [email protected]
Work Phone: +390721639166



Reply via email to