CString转换成char *
时间: 2023-07-23 07:03:31 浏览: 112
可以使用CString的GetBuffer()函数将CString转换为char*,然后使用strcpy()函数将其复制到一个char*类型的变量中。例如:
```
// 假设有一个CString类型的变量str
char* cstr = str.GetBuffer(str.GetLength() + 1);
// 将CString类型的变量复制到char*类型的变量中
strcpy(cstr, (LPCTSTR)str);
```
需要注意的是,GetBuffer()函数返回的char*指针只在CString对象没有被修改或释放时才有效。在使用完毕后,需要调用ReleaseBuffer()函数来释放CString对象的缓冲区。例如:
```
// 使用完毕后需要调用ReleaseBuffer()函数来释放CString对象的缓冲区
str.ReleaseBuffer();
```
相关问题
CString 转换unsigned char *
CString是MFC(Microsoft Foundation Classes)中的一个类,用于处理字符串。如果要将CString转换为uns char*,可以使用CString的GetBuffer方法和CString的GetLength方法来实现。
下面是一个示例代码:
```cpp
CString str = "Hello, World!";
int length = str.GetLength();
unsigned char* buffer = new unsigned char[length + 1];
strcpy_s((char*)buffer, length + 1, str.GetBuffer());
// 使用buffer进行后续操作
delete[] buffer;
```
在上面的代码中,首先获取了CString的长度,然后创建了一个unsigned char类型的缓冲区,长度为CString的长度加1。接着使用strcpy_s函数将CString的内容复制到缓冲区中。最后可以使用buffer进行后续操作。
cstring*转char*
以下是两种将CString转换为char*的方法:
1. 使用GetBuffer()函数:
```cpp
CString str = _T("长城");
char* p = str.GetBuffer(); // 使用GetBuffer()函数获取char*指针
```
2. 使用T2A()或W2A()宏:
```cpp
CString str = _T("世界,你好!Hello World");
char* p = T2A(str); // 使用T2A()宏将CString转换为char*
char* q = W2A(str); // 使用W2A()宏将CString转换为char*
```
阅读全文