Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Выравнивание в типе Добавлено: 30.11.05 16:37  

Автор вопроса:  LamerOnLine | ICQ: 334781088 
Сабж.
Есть тип, в который заполняется по CopyMemory.
Он содержит набор полей типа Long (2 шт), массив байт(33 штуки), шесть полей типа Byte и снова пять полей Long. При копировании памяти один байт (на стыке шести байтов и пяти лонгов) просто пропадает. Если Long заменить на массив из четырех байт - все нормально.
Можно это как-нибудь обойти, чтобы не преобразовывать затем массивы? Или компилятор не позволяет обойти свои глюки?

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 30.11.05 17:02
Структуры VB выровнены на 4 байта. При работе с API этого не заметно, хоть они и 1, поскольку во всех структурах API выравнивание 1 совпадает с 4.

Однако, VB правильно работает с любым выравниванием, если соответствующая структура описана в tlb.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам