boost 序列化中的字符类型问题

pianfenshuderen 2012-04-07 08:59:00
今天遇到一个问题,归结出来,大家看看怎么解决。

//---------------------------------------------------------------------------

#include <stdlib.h>

#include <vcl.h>
#pragma hdrstop

#include <tchar.h>

#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <iostream>
#include <fstream>

void save()
{
std::ofstream file("archive.xml");
boost::archive::xml_oarchive oa(file);
std::string s = "Hello World!\n";
oa & BOOST_SERIALIZATION_NVP(s);
}

void load()
{
std::ifstream file("archive.xml");
boost::archive::xml_iarchive ia(file);
std::string s;
ia & BOOST_SERIALIZATION_NVP(s);
std::cout << s << std::endl;
}





int _tmain(int argc, _TCHAR* argv[])
{


save();

load();

system( "pause" );


return 0;
}
//---------------------------------------------------------------------------


先调用save(),再调用load().一切非常正常。

现在把"Hello World!\n"换成"你好,世界!\n",可以save(),

但是,load()的时候,就有异常了。

这显然是个宽字符的问题。怎么解决呢,请教大家。




...全文
65 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧