|
发表于 2020-2-17 20:12:14
|
显示全部楼层
写了个小函数,楼主可以试用下:
- std::string MFCString_To_CppString(CString str)
- {
- if (str.GetLength() <= 0) std::string("");
- std::string str_ret;
- #ifdef UNICODE
- int gbk_len = WideCharToMultiByte(CP_ACP, 0, (LPCTSTR)str, str.GetLength(), NULL, 0, NULL, NULL);
- if (gbk_len <= 0) return std::string("");
- char* lpsz_m = nullptr;
- lpsz_m = new char[gbk_len + 2];
- if (!lpsz_m) return std::string("");
- memset(lpsz_m, 0, (gbk_len + 2)*sizeof(char));
- int nRtn = WideCharToMultiByte(CP_ACP, 0, (LPCTSTR)str, str.GetLength(), lpsz_m, gbk_len, NULL, NULL);
- if (nRtn != gbk_len)
- {
- delete[] lpsz_m;
- return std::string("");
- }
- str_ret = lpsz_m;
- delete[] lpsz_m;
- #else
- str_ret = (LPCTSTR)str;
- #endif
- return str_ret;
- }
复制代码 |
评分
-
查看全部评分
|