CString 转 STRING
时间: 2024-09-09 14:01:49 浏览: 72
在 MFC(Microsoft Foundation Classes)的 C++ 编程环境中,`CString` 类型本身已经是字符串类型,它内部已经是以 Unicode 字符串的形式存储数据。当你想从一个 `CString` 变量直接复制到另一个字符串变量(`TCHAR*` 或 `LPCTSTR`),可以简单地使用成员函数 `CopyTo()` 或 `c_str()`。
例如,如果你想把一个 `CString` 转换成 `TCHAR*` 类型的字符串,可以这样做:
```cpp
CString strOriginal = "Hello, MFC!";
TCHAR* strDestination = new TCHAR[wcslen(strOriginal) + 1]; // 估计需要的内存大小
strOriginal.CopyTo(strDestination); // 复制字符串内容
strDestination[wcslen(strOriginal)] = _T('\0'); // 添加 null 结尾
// 现在,strDestination 指向的是原始字符串的一个副本
// 使用完后记得删除分配的内存
delete[] strDestination;
```
或者直接获取它的 `c_str()`,这通常用于标准C风格的字符串操作:
```cpp
TCHAR* cStr = strOriginal.c_str();
// 然后可以像处理普通 C 风格字符串一样使用 cStr
```
注意 `c_str()` 返回的是 `const TCHAR*`,这意味着你需要确保不会修改原始的 `CString` 内容。
阅读全文