Функция DllStructGetSize

         Описание функции


DllStructGetSize

Возвращает размер структуры в байтах.

DllStructGetSize ( Struct )

Параметры

Struct Структура возвращаемая функцией DllStructCreate().

Возвращаемое значение

Успех:Возвращает размер структуры в байтах.
Ошибка:Возвращает 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