Проблема с User-Type переменой

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
HiSER
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 04.07.2007 (Ср) 18:17

Проблема с User-Type переменой

Сообщение HiSER » 13.03.2008 (Чт) 20:12

Не могу понять в чем ошибка :?

Пример кода:
Код: Выделить всё
Private Type TEST
db As Byte
dw As Integer
db2 As Byte
dd As Long
End Type

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Sub Command1_Click()
Dim b(7) As Byte
Dim t As TEST

With t
.db = 1
.dw = 2
.db2 = 3
.dd = 4
End With

CopyMemory b(0), t, 8

Open "1.bin" For Binary As 1
Open "2.bin" For Binary As 2
Put 1, 1, t
Put 2, 1, b
Close 2, 1

End Sub


Почему после копирования переменной t в массив b, db становится Integer, а db2 становится Long?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 13.03.2008 (Чт) 22:14

Это изза dword-aligment'а
http://forum.sources.ru/index.php?showtopic=175481
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 36

    TopList