![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
klyxa |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
привет.есть структура
есть код
Как скопировать в структуру(packet) данные из буфера(buf)? |
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
вообще-то вот так:
Но вы уверены что структура файла совпадает со структурой m_packet? если она была записана на машине с другим порядком байтов, то получится фигня. так-же есть еще проблема выравнивания. Вобщем это все не безопасный код, и его можно использовать только для внутренних нужд. в серьезных проектах, нужно использовать сериализацию, или что-то более надёжное. |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
||||
|
||||
klyxa |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 13.8.2006 Репутация: нет Всего: нет |
насчёт заголовка да, а оставшуюся часть я хотел представить как набор байтов.
ReadFile для обращения к драйверу. Если в очереди пакетов драйвера окажется принятый пакет, то я скопирую данные в буфер,переданный в параметрах ReadFile. Т.к. пакета может не оказаться я закинул его в цикл. И если пакет всё же пришёл, то нужно данные оформить в виде описанной структуры. Смогу ли я таким примитивным способом это сделать,т.е. голова,хвост? |
||||
|
|||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Если вы хотите представить данные после заголовка, просто набором байтов, то что-то типа
|
||||
|
|||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
кроме того, как я писал выше, есть еще проблема выравнивания.
например
Затем следующие 6 байтов SrcMAC, и так далее. Если вы записывали данные именно этой-же программой, на этом же компе, то проблем не будет, но скорей всего вы ожидаете совсем другого. Если не хотите чтоб было выравнивание на границу слова, используйте
|
||||
|
|||||
tapa |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 23.1.2010 Репутация: нет Всего: нет |
volatile, спасибо буду думать
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |