查看: 591|回复: 2

中文无法显示问题求教

[复制链接]

该用户从未签到

发表于 2015-3-31 14:12:53 | 显示全部楼层 |阅读模式
  1. inline std::wstring s2ws(const std::string& s)
  2. {
  3.     setlocale(LC_ALL, "chs");
  4.     const char* _Source = s.c_str();
  5.     size_t _Dsize = s.size() + 1;
  6.     wchar_t *_Dest = new wchar_t[_Dsize];
  7.     wmemset(_Dest, 0, _Dsize);
  8.     mbstowcs(_Dest,_Source,_Dsize);
  9.     std::wstring result = _Dest;
  10.     delete []_Dest;
  11.     setlocale(LC_ALL, "C");
  12.     return result;
  13. }
复制代码

  1. osgWidget::Label* CLegend::createLabel(const std::string& l, unsigned int size)
  2. {
  3.     osgWidget::Label* label = new osgWidget::Label("", "");

  4.     label->setFont("fonts/simhei.ttf");
  5.     label->setFontSize(size);
  6.     label->setFontColor(1.0f, 1.0f, 1.0f, 1.0f);
  7.        
  8.         std::wstring wstr = s2ws(l);
  9.         osgText::String showntext(wstr.c_str());
  10.     label->setLabel(showntext);
  11.         label->setAlignHorizontal(osgWidget::Widget::HA_LEFT);
  12.         label->addSize(10.0f, 5.0f);
  13.         label->setPadding(5);
  14.         label->setPadLeft(10);
  15.         label->setColor(1.0f, 0.5f, 0.0f, 0.0f);

  16.     return label;
  17. }
复制代码


在我的机器上,中文能够正常显示。换一台一模一样的电脑,中文不显示。
求教原因。

该用户从未签到

 楼主| 发表于 2015-3-31 14:17:59 | 显示全部楼层
草。。。查了无数天,刚发完帖子就找到原因了。。osgplugin中的osgdb_freetype.dll没有拷贝过去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表