; Local Const $tagSTRUCT = "int;ubyte;uint;char[128]" ; 3.3.6.1
; Local Const $tagSTRUCT = "struct;int;byte;uint;char[128];endstruct" ; 3.3.8.1, без имён элементов (полей) структуры
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

#cs
	Устанавливает данные в структуру (вид на языке Си)
	struct.var1	= -1;
	struct.var2	= 255;
	struct.var3	= INT_MAX; -1 will be typecasted to (unsigned int)
	strcpy(struct.var4,"Приветствие");
	struct.var4[0]	= 'п';
#ce
DllStructSetData($tStruct, 1, -1) ; или var1 вместо 1
DllStructSetData($tStruct, 'var2', 255) ; или 2 вместо var2
DllStructSetData($tStruct, 3, -1) ; или var3 вместо 3
DllStructSetData($tStruct, 4, "Приветствие") ; или var4 вместо 4
DllStructSetData($tStruct, 4, Asc("п"), 1)

;	Отображает информацию в структуре
MsgBox(4096, "Сообщение", "Размер структуры: " & DllStructGetSize($tStruct) & @CRLF & _
		"Указатель структуры: " & DllStructGetPtr($tStruct) & @CRLF & _
		"Данные:" & @CRLF & _
		DllStructGetData($tStruct, 1) & @CRLF & _
		DllStructGetData($tStruct, 2) & @CRLF & _
		DllStructGetData($tStruct, 3) & @CRLF & _
		DllStructGetData($tStruct, 'var4'))

$tStruct = 0 ; Освобождает выделенную для структуры память, если потребуется.
;  При завершении скрипта или функции (если локальная структура) освобождать не требуется.