CEGUI字符串转换问题

CEGUI支持中文字体是不用说了,需要中文显示时所需的配置可以参见网络上其他相关文章,这里说得是字符串转换问题,应为CEGUI有自己的字符串类(CEGUI::String),显示时需要把char*转换为CEGUI::String,下面这个小算法可以实现这个功能,具体就不多说了,各位复制粘贴即可,^_^。
 1CEGUI::String& encode(const char * c)
 2{
 3    static CEGUI::String str;
 4    WCHAR e;
 5    str.clear();
 6    int i = 0;
 7    while(c[i])
 8    {
 9        if(unsigned char(c[i])>=161)
10        
11            MultiByteToWideChar(0,0,c+i,2,&e,1);
12
13            str.append(1,e);
14            i+=2;
15        }
 
16        else
17        {
18            str.append(1,c[i]);
19            i++;
20        }

21    }

22
23    return str;
24}

posted on 2007-12-12 20:20 gogoplayer 阅读(846) 评论(4)  编辑 收藏 所属分类: Ogre

评论

#1楼  2007-12-12 21:45 偶买疙瘩 [未注册用户]

这是什么东西啊?


我怎么看不懂   回复  引用    

#2楼  2007-12-12 22:52 怪怪      

没用过, 这个库不支持std::string吗?   回复  引用  查看    

#3楼  2007-12-13 09:14 Clark Zheng      

@怪怪

CEGUI(Crazy Eddie’s GUI http://www.cegui.org.uk)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计。CEGUI开发者的目的是希望能够让游戏开发人员从繁琐的GUI实现细节中抽身出来,以便有更多的开发时间可以放在游戏性上(一般用于游戏界面的开发中)。

CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D。   回复  引用  查看    

#4楼 [楼主] 2007-12-13 16:23 gogoplayer      

CEGUI最新版本没有试过,以前用5.0的时候总是输出中文有问题,后来想起做Unicode时曾经遇到过类似问题,故写了个函数转换,试了一下还是成功地,^_^   回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-08 18:16 编辑过
 
另存  打印
 


导航

<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

与我联系

常用链接

留言簿(2)

我的标签

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜