gpt4 book ai didi

c++ - 如何正确地将 unsigned char 转换为 CString 并再次将 CString 的结果反向转换为 unsigned char?

转载 作者:太空狗 更新时间:2023-10-29 20:26:17 25 4
gpt4 key购买 nike

我在将 unsigned char 转换为 CString 以及将转换后的 CString 结果转换为 unsigned char 时遇到问题。

首先,我尝试使用 CString.append();。

/////////////////////////

CString result2;
CString result3;
unsigend char unchar_result[9];
unchar_result = {143, 116, 106, 224, 101, 104, 57, 157};
unchar_result[8] = NULL;

for(int i=0; i<8; i++){
result2=(char)temp[i];
result3.append(result2);
}

////////////////////////

因此,我认为 result3 已被正确替换。

如果我通过 ASCII 码看到“unchar_result”,那么 unchar_result = "?tj?eh9?"结果 3 是“?tj?eh9?”也是。

但我想将 (CString)result3 反向转换为 unsigned char 矩阵。

unsigned char a;
unsigned char testdecode[8];
for(int i=0; i<8 ; i++){
a=result3.GetAt(i);
testdecode[i]=a

}

转换后结果为“?tj?eh9?”但是,该值为 { 63、116、106、63、101、104、57、63}...我希望结果为 { 143、116、106、224、101、104、57、157 }。

接下来,我再次尝试使用 CStringA。

CStringA result6;
result6(unchar_result);

而且我可以通过调试工具的局部变量窗口看到这个值。然后,result6 是“뢶j?h9앀儆?”此外 int len = result6.GetLength() = 13。

如何将 unsigned char 正确转换为 CString 并进行反转?

最佳答案

转换为 CString 非常简单,只需将 unsigned char* 传递给 c'tor。从 CStringunsigned char* 的转换需要更多工作,请参见下文。

unsigned char orig[] = "hello world";
std::cout << orig << " (unsigned char *)" << std::endl;

// Convert to a CString
CString cstring(orig);
std::cout << cstring << " (CString)" << std::endl;

// Convert to a unsigned char*
const size_t newsize = (cstring.GetLength() + 1);
unsigned char* nstring = new unsigned char[newsize];
strcpy_s((char*)nstring, newsize, cstring);
std::cout << nstring << " (unsigned char*)" << std::endl;

关于c++ - 如何正确地将 unsigned char 转换为 CString 并再次将 CString 的结果反向转换为 unsigned char?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20350411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com