前言

在MFC中经常需要CString, const char *, string的转换,这里记录一种通过宏转换的方法。

宏函数

1
2
3
4
5
6
7
8
#ifdef _UNICODE
#define CString2C_Str(pStr, pC_Str) \
CT2A pszConvertedAnsiString##pStr(pStr); \
const char* pC_Str = pszConvertedAnsiString##pStr;
#else
#define CString2C_Str(pStr, pC_Str) \
const char* pC_Str = pStr.GetString();
#endif

使用

1
2
3
4
CString str = _T("测试");
CString2C_Str(str, str_c_str);
std::cout << str_c_str;
std::string strCpp(str_c_str);

该封面图片由D MullerPixabay上发布