青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

專職C++

不能停止的腳步

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

常用鏈接

留言簿(28)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

在用vs開發(fā)cocos2dx過程中,要顯示的中文,要求是UTF-8格式的才能正常顯示出來,但VS一般是ANSI格式保存,這樣,在代碼中寫入的中文字符串,運行后,顯示的就是亂碼。
為了正確顯示中文,或支持多語言,我這里定義一個簡單的字符串管理類,來滿足上述要求。
這個類使用了我的開源代碼中的XAnsiString和XMap,TextIni這幾個類,可以在我的開放代碼找到下載。
下面是代碼://字符串資源管理器
#ifndef _X_STRING_MANAGER_H_
#define _X_STRING_MANAGER_H_
#include <xstring.h>
#include <xini.h>
#include <xmap.h>
#include <xset.h>
#include <xsingleton.h>
namespace zdh
{
    typedef XMap<XAnsiString, XAnsiString> TStringKeyValue;
    typedef XMap<XAnsiString, TStringKeyValue> TStringSection;

    class XStringMgr
    {
    public:
        XStringMgr()
        {}
        ~XStringMgr()
        {
            m_Map.Clear();
        }
        XInt Load(const XAnsiString & paramFileName, bool paramClear = true)
        {
            if (paramClear) m_Map.Clear();
            XIniText stIni;
            if (!stIni.Load(paramFileName)) return ERR_FAIL;
            for (int i = 0; i < stIni.getSectionCount(); i++)
            {
                XIniText::TSection * pSection = stIni.getSection(i);
                
                TStringKeyValue & stKeyValue = m_Map[pSection->getSectionName()];
                for (int j = 0; j < pSection->getLength(); j++)
                {
                    XIniText::TEntry * pEntry = pSection->getEntry(j);
                    if (isNULL(pEntry)) continue;
                    if (pEntry->getEntryType() != EIET_COMMON_ENTRY) continue;
                    XIniText::TEntryCommon * pCommonEntry = dynamic_cast<XIniText::TEntryCommon *>(pEntry);
                    if (isNULL(pCommonEntry)) continue;
                    stKeyValue[pCommonEntry->getKey().getField()] = pCommonEntry->getValue().getField();
                }
            }
            return ERR_OK;
        }
        //取指定字符串對象,如果不存在,返回NULL
        const XAnsiString * getStringEx(const XAnsiString & paramSection, const XAnsiString & paramKey)
        {
            int iSectionIndex = m_Map.getIndexBykey(paramSection);
            if (!m_Map.isValidIndex(iSectionIndex)) return NULL;
            const TStringKeyValue & stKeyValue = m_Map.getValue(iSectionIndex);
            int iValueIndex = stKeyValue.getIndexBykey(paramKey);
            if (!stKeyValue.isValidIndex(iValueIndex)) return NULL;
            return &stKeyValue.getValue(iValueIndex);
        }
        //取指定的字符串,如果不存在,則返回空串
        const char * getString(const XAnsiString & paramSection, const XAnsiString & paramKey)
        {
            const XAnsiString * pRet = getStringEx(paramSection, paramKey);
            if (isNULL(pRet)) return "";
            else return pRet->c_str();
        }

        const TStringSection & getMap() const
        {
            return m_Map;
        }

    private:
        TStringSection m_Map;
    };
}
    #define STRING_MGR zdh::XSingletonSample<zdh::XStringMgr, 0>::getInstance()
    #define STRING_SECTION_MAIN "main"
    #define STRING_PLAY (STRING_MGR->getString(STRING_SECTION_MAIN, "play"))
    #define STRING_FONT (STRING_MGR->getString(STRING_SECTION_MAIN, "font"))
#endif
使用例子
    XAnsiString strStringMgrFileName("string_zh.ini");
    if (zdh::isNotOK(STRING_MGR->Load(strStringMgrFileName)))
    {
        STREAM_INFO << "load "<<strStringMgrFileName << "Fail!";
        return false;
    }
    else
    {
        STREAM_INFO << "Load String:" << STRING_PLAY;
    }
posted on 2014-06-30 14:59 冬瓜 閱讀(1285) 評論(0)  編輯 收藏 引用 所屬分類: 原創(chuàng)cocos2dx
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩一区二区三区四区在线观看 | 亚洲天天影视| 欧美/亚洲一区| 欧美一级在线亚洲天堂| 亚洲专区在线视频| 亚洲高清资源| 亚洲国产二区| 美女主播一区| 亚洲日本成人| 亚洲影视在线| 欧美精品一区在线发布| 99re视频这里只有精品| 国产精品成人久久久久| 久久精品一区二区三区四区| 欧美激情亚洲激情| 一区二区精品在线观看| 欧美成人按摩| 亚洲欧美韩国| 亚洲激情网站| 欧美在线亚洲在线| 新片速递亚洲合集欧美合集| 日韩一级网站| 91久久线看在观草草青青| 国产精品一级| 欧美激情1区2区| 亚洲欧美日本精品| 欧美国产高清| 亚洲人午夜精品免费| 欧美午夜宅男影院| 久久在线视频| 亚洲最新视频在线| 中国女人久久久| 在线观看精品一区| 国产精品久久久久久久久久直播 | 黄色成人在线观看| 狠狠色狠狠色综合日日小说| 国产视频观看一区| 国产精品久久久久久久久借妻| 欧美成人在线免费视频| 亚洲午夜激情网页| 亚洲国产黄色片| 欧美激情亚洲视频| 亚洲欧美成人精品| 亚洲二区精品| 亚洲国内精品| 久久男人资源视频| 国产一区二区三区久久久| 一本色道久久88亚洲综合88| 欧美激情精品久久久久| 久久久99国产精品免费| 国产日韩欧美精品综合| 亚洲图片欧洲图片av| 久久综合久久综合久久综合| 性欧美长视频| 国产模特精品视频久久久久| 亚洲一区二区日本| 一本色道88久久加勒比精品| 欧美日韩精品在线| 亚洲最新在线视频| 亚洲每日在线| 欧美日韩午夜激情| 亚洲深爱激情| 99视频有精品| 欧美午夜免费影院| 亚洲尤物在线| 亚洲视频欧洲视频| 欧美性大战xxxxx久久久| 亚洲久久一区| 亚洲国产精品成人综合色在线婷婷 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲一区二区三区激情| 国产精品久久福利| 午夜精品免费视频| 亚洲女女女同性video| 国产精品综合色区在线观看| 亚洲一区二区高清视频| 欧美福利在线| 欧美高清不卡在线| 一区二区三区.www| 一二三四社区欧美黄| 国产精品都在这里| 欧美一级免费视频| 欧美一区二区播放| 影音先锋亚洲一区| 欧美激情国产高清| 欧美乱大交xxxxx| 亚洲午夜在线视频| 亚洲一区二区三区中文字幕 | 美女诱惑黄网站一区| 噜噜噜久久亚洲精品国产品小说| 91久久极品少妇xxxxⅹ软件| 亚洲欧洲精品一区二区三区| 欧美日韩在线播放三区| 亚洲欧美日韩精品一区二区| 午夜精彩国产免费不卡不顿大片| 韩日在线一区| 91久久在线视频| 欧美亚州一区二区三区| 亚洲综合不卡| 亚洲欧美日韩在线观看a三区| 国外视频精品毛片| 欧美激情精品| 国产精品拍天天在线| 午夜精品福利视频| 免费成人黄色| 亚洲一区免费| 欧美在线视频免费观看| 麻豆精品在线视频| 国产精品一区免费观看| 午夜亚洲福利| 小黄鸭精品aⅴ导航网站入口| 国产自产女人91一区在线观看| 久久综合网色—综合色88| 99国产精品视频免费观看一公开| 亚洲破处大片| 欧美午夜寂寞影院| 久久精品99国产精品日本| 久久综合给合久久狠狠狠97色69| 99精品国产在热久久婷婷| 亚洲女ⅴideoshd黑人| 亚洲国产精品成人va在线观看| 亚洲毛片一区| 韩国美女久久| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲精品在线观| 国产欧美视频一区二区三区| 麻豆9191精品国产| 欧美人与性动交cc0o| 久久岛国电影| 亚洲欧美制服中文字幕| 免费欧美在线视频| 国产日韩一区| 亚洲欧洲99久久| 亚洲视频网在线直播| 久久福利一区| 亚洲网站在线播放| 红桃视频成人| 亚洲色图在线视频| 激情成人综合网| 中文av一区特黄| 国产亚洲精品一区二555| 日韩亚洲欧美精品| 1024亚洲| 欧美影院在线| 亚洲尤物在线| 亚洲一级在线| 亚洲视频免费| 欧美伊人久久| 欧美护士18xxxxhd| 久久男人资源视频| 久久综合久久综合久久综合| 国产精品国产| 亚洲国产毛片完整版 | 欧美日韩mp4| 亚洲电影免费| 激情一区二区| 欧美一级淫片播放口| 亚洲男女自偷自拍| 久久久久久9999| 久久久久久免费| 欧美精品 日韩| 亚洲第一区在线观看| 亚洲一区免费看| 欧美乱大交xxxxx| 亚洲精品日韩激情在线电影| 午夜精品久久一牛影视| 国产女优一区| 欧美亚洲成人网| 欧美激情一区二区久久久| 亚洲尤物在线视频观看| 亚洲国产精品久久久久婷婷884| 欧美在线观看日本一区| 亚洲国产精品久久久久婷婷老年| 欧美成人嫩草网站| 午夜免费久久久久| 欧美激情欧美激情在线五月| 亚洲精品系列| 国产精品青草久久久久福利99| 亚洲资源av| 久久精品国产69国产精品亚洲| 国产一区二区三区丝袜| 美国三级日本三级久久99| 亚洲免费精品| 欧美在线视频网站| 亚洲精品欧美| 国产亚洲精品久久久久久| 欧美夜福利tv在线| 久久综合网色—综合色88| 亚洲日本电影| 国产精品成人久久久久| 久久福利资源站| 日韩午夜av电影| 亚洲第一在线综合在线| 免费不卡欧美自拍视频| 欧美激情一区二区三区不卡| 亚洲国产精品一区在线观看不卡| 久久精品三级| 久久久久久午夜| 在线综合亚洲欧美在线视频| 国产麻豆精品在线观看|