MFC中cstring转byte数组
时间: 2023-05-22 19:05:38 浏览: 336
可以使用CString的GetBuffer方法来获取CString内部的字符数组,然后直接将该字符数组转换成byte数组即可。下面是简单的示例代码:
CString str = "Hello, world!";
BYTE* data = (BYTE*)(LPCTSTR)str;
// 现在data就是byte数组了
注意:LPCTSTR是一个Win32 API类型,用于表示指向一个以null结尾的字符串的指针,这个类型在TCHAR.H头文件中定义。
相关问题
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了。
阅读全文