2011-01-20 108 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()); 
    }