三木目 发表于 2021-9-14 11:57:42

Unicode和Ansi转换方法——wchar_t*、char*


1、单字节转宽字节(char* --> wchar_t*)
/*
**将单字节char*转化为宽字节wchar_t*
*/
inline wchar_t* AnsiToUnicode( const char* szStr )
{
    int nLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, NULL, 0 );
    if (nLen == 0)
    {
      return NULL;
    }
    wchar_t* pResult = new wchar_t;
    MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, pResult, nLen );
    return pResult;
}


2、宽字节转单字节(wchar_t* --> char*)
/*
**将宽字节wchar_t*转化为单字节char*
*/
inline char* UnicodeToAnsi( const wchar_t* szStr )
{
    int nLen = WideCharToMultiByte( CP_ACP, 0, szStr, -1, NULL, 0, NULL, NULL );
    if (nLen == 0)
    {
      return NULL;
    }
    char* pResult = new char;
    WideCharToMultiByte( CP_ACP, 0, szStr, -1, pResult, nLen, NULL, NULL );
    return pResult;
}
页: [1]
查看完整版本: Unicode和Ansi转换方法——wchar_t*、char*