2010-06-21 15 views
1

L'application suivante me donne une violation d'accès sur sa première ligne, quoi avec cela?erreur dans une ligne programme 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; 
} 

[modifier] Le code suivant me donne une exception sur la ligne de XMLFormatTarget, mais si je change la chaîne de "C: /test.xml" à "test.xml" il fonctionne très bien.

// 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; 
} 
+0

Tout comme une vérification de la santé, si vous supprimez l'appel à XMLString :: transcode(), est-ce qu'il plante toujours? – WildCrustacean

Répondre

1

L'erreur évidente dans votre programme est que vous n'initialisez pas xerces-c avant de l'utiliser.

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

Vous devez appeler XMLPlatformUtils::Initialize() avant de faire d'autres appels à Xerces-c.

+0

Merci beaucoup Charles, peut-être que vous seriez assez aimable pour m'aider avec une autre requête, j'ai mis à jour ma question originale avec mon nouveau problème. Merci – Gungho

+0

@Tim: Comme vous avez déjà accepté une réponse à cette question et que votre nouvelle question est substantiellement différente de la formulation originale, il serait plus logique de la poser comme une nouvelle question. –

+0

J'ai posé une nouvelle question ici http://stackoverflow.com/questions/3091484/exception-in-two-line-xerces-program – Gungho