MFC中cstring转byte数组
时间: 2023-05-23 21:02:37 浏览: 154
可以使用CString的GetBuffer方法来获取一个字符数组指针,再使用内存拷贝函数将其内容拷贝到一个字节数组中。代码示例如下:
CString str = "Hello World";
const char* charArray = str.GetBuffer(str.GetLength());
BYTE* byteArray = new BYTE[str.GetLength()];
memcpy(byteArray, charArray, str.GetLength());
str.ReleaseBuffer();
注意,在使用完GetBuffer后需要使用ReleaseBuffer来释放缓冲区。另外,BYTE是unsigned char的别名。
相关问题
MFC中byte数组转为cstring乱码
你可以使用以下代码将MFC中的byte数组转为CString:
```c++
CString byteArrToString(BYTE* byteArr, int length) {
CString strResult;
for (int i = 0; i < length; i++) {
strResult.AppendFormat(_T("%02x"), byteArr[i]);
}
return strResult;
}
```
这个函数将byte数组中的每一个字节转为2位16进制字符串,并将它们拼接成一个CString返回。注意,这个方法假定byte数组中的每个字节都是有效的16进制字符,否则可能会产生乱码。
MFC byte数组据转CString列子
可以使用CString的Format函数将byte数组转换为CString。具体代码如下:
```c++
BYTE byteArray[] = {0x48, 0x65, 0x6C, 0x6C, 0x6F}; // byte数组
int len = sizeof(byteArray) / sizeof(BYTE); // 获取byte数组长度
CString str;
for (int i = 0; i < len; i++) {
str.AppendFormat(_T("%02X"), byteArray[i]); // 将byte数组转换为16进制字符串
}
```
这样就可以将byte数组转换为CString了。
阅读全文