使用完需release
如下
wchar_t *wchar;
char *ch = SSHUtil::ConvertWcsToMbs(wchar);
delete [] ch;
char *ConvertWcsToMbs(wchar_t *src)
{
int nLength;
char *pConverted = NULL;
size_t nNumberOfCharConverted = 0;
if ( src == NULL )
return NULL;
nLength = static_cast<int>(wcslen(src));
int num = WideCharToMultiByte(CP_ACP, 0, src, static_cast<int>(wcslen(src)+1), NULL, 0, NULL, NULL);
if ( num <= 0 )
return NULL;
pConverted = new char[num+1];
num = WideCharToMultiByte(CP_ACP, 0, src, static_cast<int>(wcslen(src)+1), pConverted, num, NULL, NULL);
return pConverted;
}
wchar_t *ConvertMbsToWcs(char *src)
{
int nLength;
wchar_t *pConverted = NULL;
size_t nNumberOfCharConverted = 0;
if ( src == NULL )
return NULL;
nLength = static_cast<int>(strlen(src));
int num = MultiByteToWideChar(CP_ACP, 0, src, nLength+1, NULL, 0);
if ( num <= 0 )
return NULL;
pConverted = new wchar_t[num+1];
num = MultiByteToWideChar(CP_ACP, 0, src, nLength+1, pConverted, num);
return pConverted;
}
char *ConvertWcsToUTF8(wchar_t *src)
{
int nLength;
char *pConverted = NULL;
size_t nNumberOfCharConverted = 0;
if ( src == NULL )
return NULL;
nLength = static_cast<int>(wcslen(src));
int num = WideCharToMultiByte(CP_UTF8, 0, src, nLength+1, NULL, 0, NULL, NULL);
if ( num <= 0 )
return NULL;
pConverted = new char[num+1];
num = WideCharToMultiByte(CP_UTF8, 0, src, nLength+1, pConverted, num, NULL, NULL);
return pConverted;
}
wchar_t *ConvertUTF8ToWcs(char *src)
{
int nLength;
wchar_t *pConverted = NULL;
size_t nNumberOfCharConverted = 0;
if ( src == NULL )
return NULL;
nLength = static_cast<int>(strlen(src));
int num = MultiByteToWideChar(CP_UTF8, 0, src, nLength+1, NULL, 0);
if ( num <= 0 )
return NULL;
pConverted = new wchar_t[num+1];
num = MultiByteToWideChar(CP_UTF8, 0, src, nLength+1, pConverted, num);
return pConverted;
}
char *ConvertMbsToUTF8(char *src)
{
wchar_t *pUnicode = NULL;
char *pUTF8 = NULL;
pUnicode = ConvertMbsToWcs(src);
pUTF8 = ConvertWcsToUTF8(pUnicode);
SAFE_RELEASE(pUnicode);
return pUTF8;
}
char *ConvertUTF8ToMbs(char *src)
{
wchar_t *pUnicode = NULL;
char *pMbs = NULL;
pUnicode = ConvertUTF8ToWcs(src);
pMbs = ConvertWcsToMbs(pUnicode);
SAFE_RELEASE(pUnicode);
return pMbs;
}
文章標籤
全站熱搜
留言列表