![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Приветствую!
Что-то я совсем потерялся в решении своей проблемы: Есть запись такого вида: Код:
type
TBRec = record
field1 : Word;
field2 : DWORD;
field3 : Byte;
field4 : Byte;
....
end;Код:
3c 00 04 17 00 00 01 05 02 06 01 00 FileRead считывает первые два байта в field1 как число 60, а в field2 считывает уже 5-й, 6, 7 и 8-й (число 83951616) т.е. пропускает байты 3-й и 4-й. Я попробовал напрямую WinAPI использовать, но с ReadFile такая же ситуация. Подскажите, в чём тут проблема? Как ее решить? У меня уже и мыслей нет, в Гугле тоже ничего не нашёл. Turbo Delphi |
|
#2
|
|||
|
|||
|
Всё, ребята, я допер - record нужно было сделать packed.
|
| Этот пользователь сказал Спасибо DmitryKz за это полезное сообщение: | ||
Freeman (14.02.2015)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Молодец. Вот бы еще понял почему ![]() Подсказка. Надо почитать про выравнивание данных в памяти. |