• <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>

            road420

            導航

            <2006年10月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            統計

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            字符類型數據轉換

            1/**///////////////////////////////////////////////////////////////////////////
              2// Module: stringutility.h
              3// Conversion among wchar_t, char and TCHAR
              4//
              5/**///////////////////////////////////////////////////////////////////////////
              6#ifndef _STRINGUTILITY_H_
              7#define _STRINGUTILITY_H_
              8
              9/**///////////////////////////////////////////////////////////////////////////
             10// get PSTR by PWSTR
             11// This function malloc some memory and you must free it
             12inline char* newPSTRFromPWSTRT(PWSTR source)
             13{
             14    char *pCh = NULL;
             15    int nLength = 0;
             16    if(!source)
             17    {
             18        pCh = new char[1];
             19    }

             20    else
             21    {
             22        nLength= wcslen(source);
             23        pCh = new char[2 * nLength + 1];
             24        WideCharToMultiByte(CP_ACP,
             25            0,
             26            source,
             27            -1,
             28            pCh,
             29            nLength * 2,
             30            NULL,
             31            NULL);
             32    }

             33    pCh[2 * nLength] = '\0';
             34    return pCh;
             35}

             36
             37/**///////////////////////////////////////////////////////////////////////////
             38// get PWSTR by PSTR
             39// This function malloc some memory and you must free it
             40inline wchar_t* newPWSTRFromPSTR(PSTR source)
             41{
             42    wchar_t *pCh = NULL;
             43    int nLength = 0;
             44    if(!source)
             45    {
             46        pCh = new wchar_t[1];
             47    }

             48    else
             49    {
             50        nLength = strlen(source);
             51        pCh = new wchar_t[nLength + 1];
             52        MultiByteToWideChar(CP_ACP,
             53            0,
             54            source,
             55            -1,
             56            pCh,
             57            nLength);
             58    }

             59    pCh[nLength] = '\0';
             60    return pCh;
             61}

             62
             63/**///////////////////////////////////////////////////////////////////////////
             64// get PSTR by PTSTR
             65// This function malloc some memory and you must free it
             66
             67inline char* newPSTRFromPTSTR(PTSTR    source)
             68{
             69#ifdef UNICODE
             70    return newPSTRFromPWSTRT(source);
             71#else
             72    char* pCh;
             73    int iLength = 0;
             74    if(!source)
             75    {
             76        pCh = new char[1];
             77    }

             78    else
             79    {
             80        iLength = strlen(source);
             81        pCh = new char[iLength +1];
             82        strcpy(pCh, source);
             83    }

             84    pCh[iLength] = '\0';
             85    return pCh;
             86#endif
             87}

             88
             89/**///////////////////////////////////////////////////////////////////////////
             90// get PWSTR by PTSTR
             91// This function malloc some memory and you must free it
             92
             93inline wchar_t* newPWSTRFromPTSTR(PTSTR source)
             94{
             95#ifdef UNICODE
             96    wchar_t *pCh = NULL;
             97    int nLength = 0;
             98    if(!source)
             99    {
            100        pCh = new wchar_t[1];
            101    }

            102    else
            103    {
            104        nLength = wcslen(source);
            105        pCh = new wchar_t[nLength + 1];
            106        wcscpy(pCh, source);
            107    }

            108    pCh[nLength] = L'\0';
            109    return pCh;
            110#else
            111    return newPWSTRFromPTSTR(source);
            112#endif
            113}

            114
            115
            116/**///////////////////////////////////////////////////////////////////////////
            117// get PTSTR by PSTR
            118// This function malloc some memory and you must free it
            119inline TCHAR* newPTSTRFromPSTR(PSTR source)
            120{
            121#ifdef UNICODE
            122    return newPWSTRFromPSTR(source);
            123#else
            124    return newPSTRFromPTSTR(source);
            125#endif
            126}

            127
            128/**///////////////////////////////////////////////////////////////////////////
            129// get PTSTR by PWSTR
            130// This function malloc some memory and you must free it
            131inline TCHAR* newPTSTRFromPWSTR(PWSTR source)
            132{
            133#ifdef UNICODE
            134    return newPWSTRFromPTSTR(source);
            135#else
            136    return newPSTRFromPWSTRT(source);
            137#endif
            138}

            139#endif // end of #ifndef _STRINGUTILITY_H_

            posted on 2008-07-15 08:49 深邃者 閱讀(164) 評論(0)  編輯 收藏 引用

            欧美一区二区三区久久综合 | 午夜精品久久久久久影视777| 久久精品成人免费国产片小草 | 久久国产成人精品麻豆| 青青青伊人色综合久久| 亚洲人AV永久一区二区三区久久| 久久亚洲精品成人av无码网站| 国产精品熟女福利久久AV| 久久夜色精品国产亚洲| 丁香五月综合久久激情| 人人狠狠综合久久88成人| 久久久91人妻无码精品蜜桃HD| 亚洲伊人久久大香线蕉综合图片| 99热精品久久只有精品| 国内精品久久久久影院优| 亚洲精品乱码久久久久久不卡| 久久国产高清字幕中文| 久久精品人成免费| 久久久国产视频| 亚洲国产成人久久综合一区77| 99久久精品国产麻豆| 色欲久久久天天天综合网精品| 香蕉久久永久视频| 久久九色综合九色99伊人| 色偷偷888欧美精品久久久| 国产亚洲婷婷香蕉久久精品 | 日本三级久久网| 国产三级久久久精品麻豆三级| 日产精品久久久久久久| 欧美成人免费观看久久| 中文字幕精品久久久久人妻| 精品久久久久久无码中文字幕 | 99精品久久久久久久婷婷| 伊人久久大香线蕉精品不卡| 国产免费福利体检区久久| 91精品国产色综久久| 成人国内精品久久久久影院| 97超级碰碰碰久久久久| 亚洲国产精久久久久久久| 久久精品国产亚洲精品| 香蕉久久AⅤ一区二区三区|