在WinCe和Windows Mobile下字符串是unicode,所以在开发native code的时候,特别是注意字符串的转换,下面是比较简单的字符串转换方法。记录下来,以便查找。
char
szA[
100
];
//
ANSI
WCHAR szW[ 200 ]; // Unicode
// regular call of sprintf: all strings are in ANSI
sprintf(szA, " %s " , " ANSI Str " );
// convert string from Unicode into ANSI
sprintf(szA, " %S " , " Unicode Str " );
// regular call swprintf. All string are in Unicode
swprintf(szW, L " %s " , L " Unicode Str " );
// convert string from ANSI into Unicode
swprintf(szW, L " %S " , " ANSI Str " );
WCHAR szW[ 200 ]; // Unicode
// regular call of sprintf: all strings are in ANSI
sprintf(szA, " %s " , " ANSI Str " );
// convert string from Unicode into ANSI
sprintf(szA, " %S " , " Unicode Str " );
// regular call swprintf. All string are in Unicode
swprintf(szW, L " %s " , L " Unicode Str " );
// convert string from ANSI into Unicode
swprintf(szW, L " %S " , " ANSI Str " );
//
convert CString(Unicode) to std::string
CString str = " mel " ;
std:: string city = CT2CA(str);
// convert std::string to CString(Unicode)
std:: string str = " AA " ;
CString cstr = CComBSTR(str);
CString str = " mel " ;
std:: string city = CT2CA(str);
// convert std::string to CString(Unicode)
std:: string str = " AA " ;
CString cstr = CComBSTR(str);
更深入的请参考
一文讲清楚Windows Mobile和Wince(Windows Embedded CE)的字符集问题
本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2009/04/02/Convert_String.html,如需转载请自行联系原作者