CString是我自己定義的一個(gè)類
為了實(shí)現(xiàn):
CString str("123abvc");
cout<<str<<endl;
聲明:
ostream& operator<<(ostream& os,const CString& str);實(shí)現(xiàn):
ostream& operator<<(ostream& os,const CString& str)
{
long multiBytes = WideCharToMultiByte(CP_ACP,0,str._pData,-1,NULL,0,NULL,NULL);//獲得將寬字節(jié)轉(zhuǎn)換成多自己時(shí),所需要的字節(jié)個(gè)數(shù),注意藍(lán)色部分
char *lpMultiBytes = new char[multiBytes+10];//分配多字節(jié)時(shí)所需要的內(nèi)存
memset(lpMultiBytes,0,multiBytes+10);
WideCharToMultiByte(CP_ACP,0,str._pData,-1,lpMultiBytes,multiBytes+10,NULL,NULL);//調(diào)用win32api函數(shù)將寬字節(jié)的表示轉(zhuǎn)換成為多字節(jié)的表示,注意藍(lán)色部分
os<<lpMultiBytes;
return os;//注意返回值
}