1. 程式人生 > >unicode下CString轉string

unicode下CString轉string

這是從網上找到的一個方法,具體網址沒記住,就當原創吧。

void CStringTostring(CString cstr,string &str)
{
	int n = cstr.GetLength(); //按字元計算,str的長度
	int len = WideCharToMultiByte(CP_ACP,0,cstr,n,NULL,0,NULL,NULL);//按Byte計算str長度
	char *pChStr = new char[len+1];//按位元組為單位
	WideCharToMultiByte(CP_ACP,0,cstr,n,pChStr,len,NULL,NULL);//寬位元組轉換為多位元組編碼
	pChStr[len] = '\0';//不要忽略末尾結束標誌

	str = pChStr;
	delete []pChStr;
}

另加一個stringtoCString
CString cstrTemp;
string strTemp = "Hello";
cstrTemp = const_cast<char*>(strTemp.c_str());