![]() |
|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
![]() Цитата:
Молодец. Вот бы еще понял почему ![]() Подсказка. Надо почитать про выравнивание данных в памяти. |