MFC中byte数组转为cstring乱码
时间: 2023-05-22 12:05:11 浏览: 693
你可以使用以下代码将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了。
MFC中cstring转byte数组
您可以使用cstring类中的GetBuffer()和ReleaseBuffer()函数在MFC中将cstring转换成byte数组。请按照以下步骤进行操作:
1. 调用GetBuffer()函数获得到底层字符数组的指针。
2. 使用strlen()函数测量字符串的长度。
3. 使用memcpy()函数将字符串从字符数组复制到byte数组中。
4. 最后,调用ReleaseBuffer()函数释放缓冲区。
以下是示例代码:
CString str = "Hello World!";
BYTE* pData = new BYTE[str.GetLength() + 1];
LPSTR pStr = str.GetBuffer(str.GetLength());
memcpy(pData, pStr, str.GetLength());
pData[str.GetLength()] = 0;
str.ReleaseBuffer();
delete[] pData;
阅读全文