Доброе время суток
Глупый вопрос, но чё-то туплю. Есть дивайс, с которым происходит обмен данными. При чтении данных нужно отображать процесс в CEdit.
Согласно синтаксису используемой функции, данные от устройства помещаются в буфер типа char*
Требуется их корректно отобразить.
Используется конструкция:
char* pInBuffer;
CString m_RecievedData;
...
// read bytes
bytesCount = usb_bulk_read(hDev->usbDevHandle, ep, pInBuffer, m_InputDataSize, m_TimeoutValue);
...
for (int i=0; i<bytesCount; i++)
{
m_RecievedData.AppendFormat("%01X ", pInBuffer[i]);
}
...
Всё OK, пока не приходит байт, который может быть интерпретирован как русский символ, т.е. имеющий единицу в старшем разряде. Тогда при преобразовании к нему дописывается ещё три байта с единицами. например, F6. На выходе получается:
Использование обычного оператора += не катит, а вывести нужно именно в виде hex.
Как сделать это корректно?