1. 程式人生 > >CString轉換為char*,在多位元組與寬位元組兩種情況下

CString轉換為char*,在多位元組與寬位元組兩種情況下

 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);//也可以實現轉換