Название: Как использовать memcpy Отправлено: merke от Сентябрь 26, 2009, 19:38 Всем привет!
У меня есть вопрос, как использовать функцию memcpy. К примеру я имею байтовый массив мне нужно его преобразовать в тип quint16. В общем делаю так: На Visual Basic 6 я создаю пользовательский тип с тремя элементами каждый из которых имеет тип Integer, всё это дело я записываю в бинарный файл. Теперь на Кутищище я создаю в точ такую же структуру с теми же элементами с типами quint16 так как в VB тип Integer представляет собой двухбайтовую переменую. Считываю я из бинарки мой пользовательский тип до этого перегрузив операторы << и >>. Теперь после считывания я получаю байтовое представление записанных чисел на бэйсике. Хочу переписывать в байтовый массив и всё это дело конвертировать посредством memcpy Помню есть апишка CopyMemory. Думаю это тоже самое. Привожу свой код. Код: void MainWindow::readStruct() Пожалуйста, помогите мне! Буду оченб благодарен! Название: Re: Как использовать memcpy Отправлено: Rcus от Сентябрь 26, 2009, 19:54 /* \facepalm */
посмотрите что делает QByteArray::setNum :) Название: Re: Как использовать memcpy Отправлено: SLiDER от Сентябрь 26, 2009, 21:58 Блин, Visual Basic атакует :( Я больше половины из того что вы говорите непонимаю, вот что например такое
Цитировать байтовое представление записанных чисел Может все таки почитать что-нибудь по C/C++, и вообще RTFM, эти языки весьма сильно отличаются от Visual Basic.Название: Re: Как использовать memcpy Отправлено: Igors от Сентябрь 27, 2009, 11:39 1) Никто не обещал что Васька будет писать в том же формате что и Qt
2) Никто не обещал что данные будут записаны в том же формате (и занимать столько же байт) что и в памяти. Это надо как минимум проверить (как и п. 1) 3) Незачем использовать memcpy если Вы уже используете tools высокого уровня (такие как QDataSrtream) которые уже дают результат чтения. |