Ошибка в одной строке программы 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.