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(strTemp.c_str());




你可能感兴趣的:(VS2008,原创)