Всем привет!
У меня есть вопрос, как использовать функцию memcpy. К примеру я имею байтовый массив мне нужно его преобразовать в тип quint16.
В общем делаю так:
На Visual Basic 6 я создаю пользовательский тип с тремя элементами каждый из которых имеет тип Integer, всё это дело я записываю в бинарный файл. Теперь на Кутищище я создаю в точ такую же структуру с теми же элементами с типами quint16 так как в VB тип Integer представляет собой двухбайтовую переменую. Считываю я из бинарки мой пользовательский тип до этого перегрузив операторы << и >>. Теперь после считывания я получаю байтовое представление записанных чисел на бэйсике.
Хочу переписывать в байтовый массив и всё это дело конвертировать посредством memcpy Помню есть апишка CopyMemory. Думаю это тоже самое.
Привожу свой код.
void MainWindow::readStruct()
{
mystr str1[10]; //Структура
QFile file1("C:\\temp.dat");;
file1.open(QIODevice::ReadOnly);
QDataStream stre(&file1);
stre >> str1[0];
QByteArray mt;
mt.setNum(str1[0].age, 10);
quint16 num;
memcpy(&num, mt, 2);
qDebug() << num;
}
file1.close();
}
Ничего не получается, код то запускается, вот только результат далеко не похож на истинный.
Пожалуйста, помогите мне! Буду оченб благодарен!