2008-10-18 5 views
-1

Je tente de créer un Xercesc DOM Parser dans mon code et pour une raison quelconque et essayer de instiate un objet XercescDOM je reçois un pointeur NULL est retourné. J'utilise la version 2.8 xercesc Voici le code.Erreur de création objet analyseur dom xercesc

using namespace xercesc; 
int main(int argc, char*argv[]) 
{ 
try 
{ 
    XMLPlatformUtils::Initialize(); 
} 
catch (const XMLException& e) 
{ 
    char* errMsg = XMLString::transcode(e.getMessage()); 
    cout << "Problem initializing parser: " << errMsg; 
    XMLString::release(&errMsg); 
} 

XercesDOMParser* parser = new XercesDOMParser(); 
if (!parser) 
    cout << "Failed to create parser"; 
} 
+0

« Nouveau » ne retourne jamais nulle dans les implémentations plus récentes C++. La seule raison pour obtenir NULL de nouveau est quand il n'y a pas de mémoire, et dans les nouveaux C++, il est traité à l'exception. Dis Xerces surcharge "nouveau" pour cette classe? Très suspect. Quel compilateur utilisez-vous? – Arkadiy

Répondre

1

@Doug: non, ce n'est pas lié, autant que je sache, parce que le code lié à tente d'extraire le document de la méthode parse(), mais cela est un void function, de sorte que le résultat sera toujours " null "de cette façon.

Sinon, je ne vois aucun problème avec le poste parent. Il compile presque ok et ici j'ai un résultat correct (analyseur non nul).

0

Il était un bug quelque part ailleurs dans mon code.