Ошибка в одной строке программы Xerces

Следующее приложение дает мне нарушение прав доступа в первой строке, что с этим?

// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <xercesc/util/XMLString.hpp>

using namespace xercesc;

int main()
{

    XMLCh* path= XMLString::transcode("test.xml"); 

    return 0;
}

[править] Следующий код дает мне исключение в строке XMLFormatTarget, но если я изменю строку с "C:/test.xml" на "test.xml", она будет работать нормально.

// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/framework/LocalFileFormatTarget.hpp>

using namespace xercesc;

int main()
{
    XMLPlatformUtils::Initialize();

    XMLFormatTarget *formatTarget = new LocalFileFormatTarget("C:/test.xml"); 

    return 0;
}

1 ответ

Решение

Очевидная ошибка в вашей программе заключается в том, что вы не инициализируете xerces-c перед его использованием.

http://xerces.apache.org/xerces-c/program-2.html

Вы должны позвонить XMLPlatformUtils::Initialize() прежде чем делать какие-либо другие звонки в xerces-c.

Другие вопросы по тегам