Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Скопировать в структуру данные |
Автор: klyxa 5.2.2011, 22:27 | ||||
привет.есть структура
есть код
Как скопировать в структуру(packet) данные из буфера(buf)? |
Автор: volatile 5.2.2011, 23:28 | ||
вообще-то вот так:
Но вы уверены что структура файла совпадает со структурой m_packet? если она была записана на машине с другим порядком байтов, то получится фигня. так-же есть еще проблема выравнивания. Вобщем это все не безопасный код, и его можно использовать только для внутренних нужд. в серьезных проектах, нужно использовать сериализацию, или что-то более надёжное. |
Автор: volatile 5.2.2011, 23:48 |
И еще, зачем вечный цикл? |
Автор: klyxa 6.2.2011, 09:33 | ||||
насчёт заголовка да, а оставшуюся часть я хотел представить как набор байтов.
ReadFile для обращения к драйверу. Если в очереди пакетов драйвера окажется принятый пакет, то я скопирую данные в буфер,переданный в параметрах ReadFile. Т.к. пакета может не оказаться я закинул его в цикл. И если пакет всё же пришёл, то нужно данные оформить в виде описанной структуры. Смогу ли я таким примитивным способом это сделать,т.е. голова,хвост? |
Автор: volatile 6.2.2011, 11:08 | ||||
Если вы хотите представить данные после заголовка, просто набором байтов, то что-то типа
|
Автор: volatile 6.2.2011, 11:29 | ||||
кроме того, как я писал выше, есть еще проблема выравнивания. например
Затем следующие 6 байтов SrcMAC, и так далее. Если вы записывали данные именно этой-же программой, на этом же компе, то проблем не будет, но скорей всего вы ожидаете совсем другого. Если не хотите чтоб было выравнивание на границу слова, используйте
|
Автор: tapa 6.2.2011, 13:17 |
volatile, спасибо буду думать ![]() |