CString转LPSTR
-
使用CString的成员函数
strSrc.GetBuffer(nSize);比如说:
CString strDes = L"";
CString strSrc = L"abc";
HRESULT hRst = StringCchCopy(strDes.GetBuffer(strSrc.GetLength()), strSrc.GetLength()+1, strSrc);
LPSTR转CString
- 可以直接用 =
LPSTR lpStr2 = “hello”;
CString strTemp2;
strTemp2 = lpStr2; - 用CString的构造
- 用MultiByteToWideChar:
CString strDes;
LPSTR lpStr = “123”;
MultiByteToWideChar(CP_ACP, 0, lps, -1, (LPWSTR)strDes.GetBuffer(sizeof(lpStr )), sizeof(lpStr )+1);
CString转LPCSTR
- 强制类型转换+CString成员函数
LPCSTR lpStr = (LPCSTR)str.AllocSysString();//这个方法可以成功,但结果只有第一个字符
lpStr = (LPCSTR)str.GetBuffer(str.GetLength());//同上
LPCSTR转CString
- 使用CString的构造
LPCSTR lpStr = “test”;
CString str(lpStr);
CString转LPWSTR - 强制类型转换:
LPWSTR lpStr = (LPWSTR)(LPCTSTR)strSrc;
CString 转LPCWSTR
- 用CString的成员函数
CString strSrc;
LPCWSTR str = strSrc.AllocSysString();//返回Whart_t* - 强制类型转换(适用于Unicode字符集)
CString转CStringA
CStringA strA = CW2A(strW,CP_UTF8);