查看: 1869|回复: 9

关于HUD显示汉字

[复制链接]

该用户从未签到

发表于 2013-3-20 17:15:29 | 显示全部楼层 |阅读模式
请问我想用HUD显示汉字  书上的例子 都是直接setText(L"汉字");  如果我想用变量存储要显示的内容 应该怎么写啊? 我试了试 总是有格式错误。。求指导。。谢谢!

该用户从未签到

发表于 2013-3-21 08:13:53 | 显示全部楼层
注意宽字符转换就可以了,更改之后 update 一下就行了

该用户从未签到

 楼主| 发表于 2013-3-21 09:25:53 | 显示全部楼层
liuzhiyu123 发表于 2013-3-21 08:13
注意宽字符转换就可以了,更改之后 update 一下就行了

书上说可以用L后者W2A 这两个不会用啊。。 因为我的字符串是变量形式 L是不是就不能用了? W2A的话也总是提示错误。。

该用户从未签到

发表于 2013-3-21 15:31:07 | 显示全部楼层
问题解决没???、我这边就干脆是英语显示,后面的中文不显示啊???、、

该用户从未签到

 楼主| 发表于 2013-3-21 16:25:33 | 显示全部楼层
1162810317 发表于 2013-3-21 15:31
问题解决没???、我这边就干脆是英语显示,后面的中文不显示啊???、、

我从网上找了转换的函数  string 转wchar_t*的 可以了

该用户从未签到

发表于 2013-3-21 18:09:25 | 显示全部楼层
一大波蓝猫 发表于 2013-3-21 16:25
我从网上找了转换的函数  string 转wchar_t*的 可以了

能说详细点不???谢谢!

该用户从未签到

 楼主| 发表于 2013-3-21 18:25:21 | 显示全部楼层
1162810317 发表于 2013-3-21 18:09
能说详细点不???谢谢!

wchar_t* CharToWchar(const char* c){
        int len = MultiByteToWideChar(CP_ACP,0,c,strlen(c),NULL,0);
        wchar_t* m_wchar=new wchar_t[len+1];
        MultiByteToWideChar(CP_ACP,0,c,strlen(c),m_wchar,len);
        m_wchar[len]='\0';
        return m_wchar;
}

wchar_t* StringToWchar(const string& s){
const char* p=s.c_str();
return CharToWchar(p);
}

setText的时候调用StringToWchar

该用户从未签到

发表于 2013-3-21 20:12:11 | 显示全部楼层
liuzhiyu123 发表于 2013-3-21 08:13
注意宽字符转换就可以了,更改之后 update 一下就行了

显示汉字的时候不管是用L或者宽字符的方法都提示下面这个错误是什么原因啊
  1. error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall osgText::TextBase::setText(unsigned short const *)" (__imp_?setText@TextBase@osgText@@QAEXPBG@Z),该符号在函数 "public: void __thiscall myManipulator::listtext(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?listtext@myManipulator@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
  2. 1>C:\Users\DELL\Desktop\Theatre\Win32\Debug\\Theatre.exe : fatal error LNK1120: 1 个无法解析的外部命令
复制代码

该用户从未签到

发表于 2013-3-21 20:33:15 | 显示全部楼层
一大波蓝猫 发表于 2013-3-21 18:25
wchar_t* CharToWchar(const char* c){
        int len = MultiByteToWideChar(CP_ACP,0,c,strlen(c),NULL,0); ...

问题解决了,谢谢!

该用户从未签到

发表于 2013-3-22 07:40:54 | 显示全部楼层
huahuawei88 发表于 2013-3-21 20:12
显示汉字的时候不管是用L或者宽字符的方法都提示下面这个错误是什么原因啊

将 wchar_t 视为内置类型
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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