MFC中如何将一个字符串中的UNICODE编码转换

2022-04-21 科技 122阅读
1.在Project->C/C++->Preprocessordefinitions中去除_MBCS,增加_UNICODE
2.在Project->Link->Category->Output->Entry-pointsymbol处增加wWinMainCRTStartup
3.拷贝3个文件到工程所在目录:mfc42u.lib,mfcs42u.lib,atlthunk.lib(WINDDK中就有,或者直接指定这三个文件的路径,否则会link失败)
4.数据类型说明
a)WCHARUnicode字符
b)PWSTR指向Unicode字符串的指针
c)PCWSTR指向一个恒定的Unicode字符串的指针
d)对应的ANSI数据类型为CHAR,LPSTR和LPCSTR
e)ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR
5.操作说明
a)ANSI操作函数以str开头strcpy
b)Unicode操作函数以wcs开头wcscpy
c)MBCS操作函数以_mbs开头_mbscpy
d)ANSI/Unicode操作函数以_tcs开头_tcscpy(C运行期库),如_tcscpy,_tcscat,_tcscmp,_tcschr(查找字串),
e)ANSI/Unicode操作函数以lstr开头lstrcpy(Windows函数)
6.字符集说明
a)UnicodeL“string”
b)ANSI“string”
c)ANSI/UnicodeT(“string”)
或_TEXT(“string”)if(szError[0]==_TEXT(‘J’)){}
7.UNICODE转换成ANSI
unsignedshort*unicode;
intsize=WideCharToMultiByte(CP_ACP,0,unicode,-1,NULL,0,NULL,0);
char*ansi=newchar[size];
WideCharToMultiByte(CP_ACP,0,unicode,-1,ansi,NULL,0);
8.ANSI转换成UNICODE
CStringansi;
DWORDdwNum;
dwNum=MultiByteToWideChar(CP_ACP,0,m_ANSI,-1,NULL,0);
wchar_t*pwText=newwchar_t[dwNum];;
MultiByteToWideChar(CP_ACP,0,m_ANSI,-1,pwText,dwNum);
9.判断如果文本文件的开头两个字节是0xFF和0xFE,那幺就是Unicode,否则是ANSI
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com