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