Xerces的C ++ SAXParser错误

时间:2014-12-11 21:55:50

标签: c++ sax xerces

外部顾问给我们写了一个C ++程序,它读取和解析一些XML文件。他使用了旧版本的Xerces,我不得不针对较新版本的Xerces重新编译它,现在我遇到了运行时错误。

以下是导致错误的代码段

try
{
    // Instantiate the Xerces DOM parser
    parser = new SAXParser();
    if ( parser == NULL ) {
        fverbose ( AFCCB2MMLAdapter::logFile, "ERROR: Could not create Xerces SAX Parser\n" );
        return NULL;
    }
}
catch (const SAXParseException& toCatch) {
    char* message = XMLString::transcode(toCatch.getMessage());
    fverbose ( AFCCB2MMLAdapter::logFile, message );            
    return NULL;
}   
catch (...)
{
    fverbose ( AFCCB2MMLAdapter::logFile, "Error in SAXParser.\n" );
    return NULL;
}

在C ++项目中,我修改了链接器依赖项,因此它违反了新版本:

的xerces-c_3.lib

我已将xerces DLL放在与我的EXE相同的文件夹中,但DLL的名称与LIB不同:

的xerces-c_3_1.dll

此时,我有点难过。我无法弄清楚实际的错误消息是什么,因为catch(...)块似乎正在捕获错误,但我不太了解C ++以找出如何获得错误。< / p>

有什么想法吗?

谢谢, 凯文

1 个答案:

答案 0 :(得分:0)

我想出了这个问题。此代码从较旧版本的xerces移植而旧版本不需要调用Initialization例程。新版本确实需要这个电话,所以我已经添加了它,现在一切似乎都在运作!

谢谢, 凯文