且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将CString和std :: string std :: wstring相互转换?

更新时间:2021-12-21 06:33:16

根据 CodeGuru :

CString std :: string :

CString cs("Hello");
std::string s((LPCTSTR)cs);

但: std :: string 不能总是从 LPCTSTR 构造.即该代码将无法用于UNICODE构建.

BUT: std::string cannot always construct from a LPCTSTR. i.e. the code will fail for UNICODE builds.

由于 std :: string 只能从 LPSTR / LPCSTR 构造,因此使用VC ++ 7.x或更高版本的程序员可以利用转换类,例如 CT2CA 作为中介.

As std::string can construct only from LPSTR / LPCSTR, a programmer who uses VC++ 7.x or better can utilize conversion classes such as CT2CA as an intermediary.

CString cs ("Hello");
// Convert a TCHAR string to a LPCSTR
CT2CA pszConvertedAnsiString (cs);
// construct a std::string using the LPCSTR input
std::string strStd (pszConvertedAnsiString);