У меня проблемы с преобразованием unsigned char в CString и наоборот, преобразование результата преобразованной CString в unsigend char.Как правильно преобразовать unsigned char в CString и еще раз, обратное преобразование в результат CString для unsigend 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);
}
//////////// //////////////
В результате я думаю, что результат3 был правильно заменен.
если я увидел 'unchar_result' кодом ASCII, то unchar_result = "? Tj? Eh9?" и result3 был «? tj? eh9?» слишком.
но, я хочу обратный преобразовать (CString) result3 в unsigned char matrix.
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);
и я вижу значение через локальное переменное окно отладочного инструмента. то результат6 был «뢶 j? h9 앀 儆?» Кроме того, int len = result6.GetLength() = 13.
это делает меня сумасшедшим ... как правильно преобразовать unsigned char в CString и сделать инверсный?
Я знаю, что это не ответ на ваш вопрос, но есть ли у вас какая-либо особая причина использовать CString и char *? Если вы можете использовать std :: string, было бы намного проще. – Dino
Я использую 'MFC'. и CString была переменной-членом Edit Control. поэтому я должен использовать CString. и теперь, я делаю DES алгоритм. Поэтому для шифрования мне нужен неподписанный символ. – Jun88