积木

No sub title

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

    static std::wstring MBytesToWString(const char* lpcszString);
    
static std::string WStringToMBytes(const wchar_t* lpwcszWString);
    
static std::wstring UTF8ToWString(const char* lpcszString);
    
static std::string WStringToUTF8(const wchar_t* lpwcszWString);

std::wstring KKLogObject::MBytesToWString(const char* lpcszString)
{
    
int len = strlen(lpcszString);
    
int unicodeLen = ::MultiByteToWideChar(CP_ACP, 0, lpcszString, -1, NULL, 0);
    wchar_t
* pUnicode = new wchar_t[unicodeLen + 1];
    memset(pUnicode, 
0, (unicodeLen + 1* sizeof(wchar_t));
    ::MultiByteToWideChar(CP_ACP, 
0, lpcszString, -1, (LPWSTR)pUnicode, unicodeLen);
    wstring wString 
= (wchar_t*)pUnicode;
    delete [] pUnicode;
    
return wString;
}

std::
string KKLogObject::WStringToMBytes(const wchar_t* lpwcszWString)
{
    
char* pElementText;
    
int iTextLen;
    
// wide char to multi char
    iTextLen = ::WideCharToMultiByte(CP_ACP, 0, lpwcszWString, -1, NULL, 0, NULL, NULL);
    pElementText 
= new char[iTextLen + 1];
    memset((
void*)pElementText, 0, (iTextLen + 1* sizeof(char));
    ::WideCharToMultiByte(CP_ACP, 
0, lpwcszWString, 0, pElementText, iTextLen, NULL, NULL);
    std::
string strReturn(pElementText);
    delete [] pElementText;
    
return strReturn;
}

std::wstring KKLogObject::UTF8ToWString(
const char* lpcszString)
{
    
int len = strlen(lpcszString);
    
int unicodeLen = ::MultiByteToWideChar(CP_UTF8, 0, lpcszString, -1, NULL, 0);
    wchar_t
* pUnicode;
    pUnicode 
= new wchar_t[unicodeLen + 1];
    memset((
void*)pUnicode, 0, (unicodeLen + 1* sizeof(wchar_t));
    ::MultiByteToWideChar(CP_UTF8, 
0, lpcszString, -1, (LPWSTR)pUnicode, unicodeLen);
    wstring wstrReturn(pUnicode);
    delete [] pUnicode;
    
return wstrReturn;
}

std::
string KKLogObject::WStringToUTF8(const wchar_t* lpwcszWString)
{
    
char* pElementText;
    
int iTextLen = ::WideCharToMultiByte(CP_UTF8, 0, (LPWSTR)lpwcszWString, -1, NULL, 0, NULL, NULL);
    pElementText 
= new char[iTextLen + 1];
    memset((
void*)pElementText, 0, (iTextLen + 1* sizeof(char));
    ::WideCharToMultiByte(CP_UTF8, 
0, (LPWSTR)lpwcszWString, -1, pElementText, iTextLen, NULL, NULL);
    std::
string strReturn(pElementText);
    delete [] pElementText;
    
return strReturn;
}

posted on 2013-03-13 11:32 Jacc.Kim 阅读(4736) 评论(0)  编辑 收藏 引用 所属分类: VC / C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理