CString轉換為char*,在多位元組與寬位元組兩種情況下
阿新 • • 發佈:2019-02-13
CString str("我愛中國");
//一、多位元組字符集情況下CString轉換為char*
//char *s=(LPSTR)(LPCTSTR)str;
//二、Unicode字符集情況下CString轉換為char*
//①
int n = str.GetLength(); //按字元計算,str的長度
int len = WideCharToMultiByte(CP_ACP,0,str,n,NULL,0,NULL,NULL);//按Byte計算str長度
char *pChStr1 = new char[len+1];//按位元組為單位
WideCharToMultiByte(CP_ACP,0,str,n,pChStr1,len,NULL,NULL);//寬位元組轉換為多位元組編碼
pChStr1[len] = '\0';//不要忽略末尾結束標誌
//②使用函式:T2A,W2A(未嘗試)
USES_CONVERSION;//宣告標示符
//呼叫函式,T2A和W2A均支援ATL和MFC中字元轉換
//char *pChStr2 = T2A(str);
char *pChStr2 = W2A(str);//也可以實現轉換