2011-01-20 4 views
1

私は、TinyXmlからコードベースのRapidXmlにXMLパーサーを切り替える作業を進めています。RapidxmlはVisual Studio 2010でコンパイルされていません。何が間違っていますか?

しかし、RapidXmlは、ヘッダファイルに私がやっている、2010年

基本的にはVisual Studioにコンパイルしていないようだ

#define RAPIDXML_NO_EXCEPTIONS 
#include "RapidXml/rapidxml.hpp" 
using namespace rapidxml; 

と実装で

xml_document<> xmlDoc; 
xmlDoc.parse<0>(filestring); 

、右2行目のコードでは、Visual Studioによると、

c:¥users¥name¥development¥rapidxml¥rapidxml.hpp(420):エラーC2061:構文エラー:識別子 'memory'
1> c:\ users \ name \ development \ rapidxml \ rapidxml.hpp(418 ):クラステンプレートメンバ関数をコンパイル中 'rapidxml :: xml_node <> * rapidxml :: memory_pool :: allocate_node(rapidxml :: node_type、const Ch *、size_t、size_t)'
1>
で1 > [
1> Chの= CHAR
1>]
1> C:\ Users \ユーザー名\開発\ rapidxmlの\のrapidxml.hpp(1359):クラステンプレートのインスタンスへの参照を参照 'rapidxmlを:: memory_pool' がコンパイルされています
1>> [
1> -CH = CHAR
1>]
1> C:\ユーザー\名\開発\のxmlresource.cpp(70):クラステンプレートインスタンス「rapidxmlへの参照を参照してください。 :xml_document <> 'はコンパイルされています

今日は長いコーディング日の終わりです。あなたが知っている人たちは、私がここで間違っていることを知っていますか?

答えて

1

は、ここに私の実際の問題です。しかし、rapidxmlは新しい配置を必要とするので、それらのエラーがどこから来たのかが分かります。ああ、私。

+0

ソリューションを共有してくれてありがとう! – kaalus

1

私が使用しているサンプルコードですが、おそらくそれが役に立ちますか?

は、いくつかのメモリのデバッグの一環として、私は配置が新しいサポートしていないバージョンで新しいオーバーロードさ:

#include <rapidxml.hpp> 

    rapidxml::xml_document<> doc; 
    doc.parse<rapidxml::parse_no_data_nodes | rapidxml::parse_trim_whitespace>(buffer); 

    rapidxml::xml_node<>* root; 
    root = doc.first_node(); 
    if (root) 
    { 
     rapidxml::xml_node<>* cur_node; 

     cur_node = root->first_node("SessionLoginDeadline"); 
     if (cur_node) 
     SessionLoginDeadline = cur_node->value(); 

     cur_node = root->first_node("Port"); 
     if (cur_node) 
     Port = stringTo<unsigned short>(cur_node->value()); 

     cur_node = root->first_node("MaximumAllowedClients"); 
     if (cur_node) 
     MaximumAllowedClients = stringTo<unsigned short>(cur_node->value()); 
    } 
関連する問題