DllStructGetSize
Возвращает размер структуры в байтах.
Параметры
Возвращаемое значение
Успех: |
Возвращает размер структуры в байтах. |
Ошибка: |
Возвращает 0. |
@error: |
0 = Нет ошибки. |
|
1 = Структура не является корректной структурой возвращённой функцией DllStructCreate(). |
Примечания
Используется, когда данные в структуре должны придерживаться размеру структуры.
См. также
DllStructCreate, DllStructSetData
Пример
Local Const $tagSTRUCT = "struct;int var1;byte var2;uint var3;char var4[128];endstruct" ; 3.3.8.1, с именами элементов (полей) структуры
$tStruct = DllStructCreate($tagSTRUCT)
If @error Then
MsgBox(4096, "", "Ошибка создания структуры, @error = " & @error)
Exit
EndIf
MsgBox(4096, "Сообщение", "Размер структуры: " & DllStructGetSize($tStruct))
$tStruct = 0 ; Освобождает выделенную для структуры память, если потребуется.
; При завершении скрипта или функции (если локальная структура) освобождать не требуется.
#cs Комментарий:
По умолчанию выравнивание 4 байта, что принуждает каждый элемент занимать не менее 4-х байт.
Минимальный размер структуры быть получен установкой выравнивания 1 в начале структуры: "align 1;struct; ..."
Описание о том, как вычисляется размер структуры:
var1: int - 4 байта
var2: byte - 1 байт + 3 байта выравнивания = 4 байта
var3: uint - 4 байта
var4: char[128] - 1 * 128 байт
#ce
Источник: http://dayzev.ucoz.ru/
|