C++ Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
//窄字符转宽字符
void ConvertA2W(wchar_t* the_strw, char* the_str, int len)//注意:默认the_strw和the_str有足够长度的内存,大于len字符; { TCHAR* old_locale = _tcsdup( _tsetlocale(LC_ALL,NULL) ); setlocale(LC_ALL, ".936"); size_t nSize = len + 1; memset(the_strw, 0, sizeof(wchar_t)*len); size_t i_tem; mbstowcs_s(&i_tem, the_strw, nSize, the_str, nSize); _tsetlocale( LC_ALL, old_locale ); //还原语言区域的设置 free( old_locale ); //还原区域设定 } //宽字符转窄字符 void ConvertW2A(wchar_t* the_strw, char* the_str, int len)//注意:默认the_strw和the_str有足够长度的内存,大于len字符; { TCHAR* old_locale = _tcsdup( _tsetlocale(LC_ALL,NULL) ); setlocale(LC_ALL, ".936"); size_t nSize = len + 1; memset(the_str, 0, sizeof(char)*len); size_t i_tem; wcstombs_s(&i_tem, the_str, nSize, the_strw, nSize); _tsetlocale( LC_ALL, old_locale ); //还原语言区域的设置 free( old_locale ); //还原区域设定 } |