Главная

Назад к списку функции

 

 

DllStructGetSize

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

DllStructGetSize ( Struct )

Параметры

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

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

Успех: Возвращает размер структуры в байтах.
Ошибка: Возвращает 0.
@error: 0 = Нет ошибки.
  1 = Структура не является корректной структурой возвращённой функцией DllStructCreate().

Примечания

Используется, когда данные в структуре должны придерживаться размеру структуры.

См. также

DllStructCreateDllStructSetData

Пример

 

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/
Категория: Описание функций AutoIt Добавил: Grek (05.01.2015) | | Теги: DllStructGetSize
Всего комментариев: 0