DllStructSetData
Устанавливает данные в элемент структуры.
Параметры
Struct |
Структура возвращаемая функцией DllStructCreate(). |
Element |
Элемент структуры, к которому вы хотите получить доступ,
отсчёт от 1 или имя элемента указанного в DllStructCreate().
|
value |
Новое значение, устанавливаемое в структуру.
|
index |
[необязательный] Для элементов, которые являются массивом это определяет индекс, в который
устанавливается значение, отсчёт от 1. Если параметр опущен или указан Default,
то большинство значений по возможности будет установлено в элемент начиная с индекса 1.
Не используется для элементов не являющихся массивом.
|
Возвращаемое значение
Успех: |
Возвращает значение, которое читается обратно из структуры.
|
Ошибка: |
Возвращает 0.
|
@error: |
0 = нет ошибок.
|
|
1 = Структура не является корректной структурой возвращённой функцией DllStructCreate().
|
|
2 = Значение элемента выходит за пределы диапазона.
|
|
3 = Индекс выходит за пределы структуры.
|
|
4 = Неизвестный тип данных элемента
|
|
5 = Индекс <= 0.
|
Примечания
Когда элемент char[n], byte[n] или ubyte[n] данные могут быть строкой, иначе должно быть число.
См. также
DllStructCreate, DllStructGetData, DllStructGetSize
Пример
; 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 ; Освобождает выделенную для структуры память, если потребуется.
; При завершении скрипта или функции (если локальная структура) освобождать не требуется.
Источник: http://dayzev.ucoz.ru/
|