2011-01-20 107 views
1

我正在將TinyXml中的XML解析器切換到我們的代碼庫中的RapidXml。Rapidxml不在Visual Studio 2010上編譯。我做錯了什麼?

然而,RapidXml似乎並沒有與Visual Studio編譯2010年

基本上,在頭文件我做

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

並在實施

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

,右在我的第二行代碼中,Visual Studio說

c:\ users \ name \ development \ rapidxml \ rapidxml.hpp(420):error C2061:syntax error:identifier'memory'
1> c:\ users \ name \ development \ rapidxml \ rapidxml.hpp(418 ):編譯類模板成員函數'rapidxml :: xml_node < * rapidxml :: memory_pool :: allocate_node(rapidxml :: node_type,const ch *,const ch *,size_t,size_t)'
1> with
1 > [
1> CH =炭
1>]
1> C:\用戶\名\發展\ rapidxml \ rapidxml.hpp(1359):見參考文獻類模板實例 'rapidxml :: memory_pool' 被編譯
1>使用
1> [
1> CH =炭
1>]
1> C:\用戶\名\發展\ xmlresource.cpp(70):見參考文獻類模板實例「rapidxml: :xml_document <>正在編譯

這是一個長編碼日的結束,今天就是這樣。你在那裏的知識淵博的人有什麼想法我在這裏做錯了嗎?

回答

1

這是我實際的問題:

由於一些內存調試的一部分,我的新超載與不支持放置新版本。但是,rapidxml確實需要放置新的工作,所以這些錯誤來自哪裏。天啊。

+0

感謝您分享解決方案! – kaalus 2012-01-24 20:10:34

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()); 
    }