設(shè)置結(jié)構(gòu)中元素的數(shù)據(jù).
DllStructSetData ( 結(jié)構(gòu), 元素, 值 [, 索引] )
結(jié)構(gòu) | DllStructCreate 返回的數(shù)據(jù)結(jié)構(gòu). |
元素 | 結(jié)構(gòu)中基于 1 的元素, 或者由 DllStructCreate 函數(shù)定義的元素名. |
值 | 設(shè)置元素的新值. |
索引 | [可選參數(shù)] 對于數(shù)組元素,需要指定基于 1 的索引. 如果省略或 Default(默認(rèn))關(guān)鍵字, 將設(shè)置索引基于 1 的盡可能多的值 (用于快速設(shè)置字符串). 不用于非數(shù)組元素. |
成功: | 返回從數(shù)據(jù)結(jié)構(gòu)讀取的值. |
失敗: | 返回 0. |
@Error: | 0 = 無錯誤. |
1 = DllStructCreate 函數(shù)返回的數(shù)據(jù)結(jié)構(gòu)不正確. | |
2 = 元素值超出范圍. | |
3 = 索引值在數(shù)據(jù)結(jié)構(gòu)外面. | |
4 = 元素的數(shù)據(jù)類型未知 | |
5 = 索引 <= 0. |
;=========================================================
; 創(chuàng)建數(shù)據(jù)結(jié)構(gòu)
; struct {
; int
var1;
; unsigned char
var2;
; unsigned int
var3;
; char
var4[128];
; }
;=========================================================
Local $str
= "int;byte;uint;char[128]"
Local $a
= DllStructCreate($str)
If @error
Then
MsgBox(0, "", "DllStructCreate 發(fā)生錯誤 " &
@error);
Exit
EndIf
;=========================================================
; 設(shè)置數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)
; struct.var1 = -1;
; struct.var2 = 255;
; struct.var3 = INT_MAX; -1
將自動確定類型(無符號 int)
;
strcpy(struct.var4,"Hello");
; struct.var4[0] =
'h';
;=========================================================
DllStructSetData($a,
1, -1)
DllStructSetData($a,
2, 255)
DllStructSetData($a,
3, -1)
DllStructSetData($a,
4, "Hello")
DllStructSetData($a,
4, Asc("h"), 1)
;=========================================================
; 顯示數(shù)據(jù)結(jié)構(gòu)的信息
;=========================================================
MsgBox(0, "DllStruct", "數(shù)據(jù)結(jié)構(gòu)大小: " & DllStructGetSize($a) & @CRLF & _
"數(shù)據(jù)結(jié)構(gòu)指針: " & DllStructGetPtr($a) & @CRLF & _
"數(shù)據(jù):" & @CRLF & _
DllStructGetData($a, 1) & @CRLF & _
DllStructGetData($a, 2) & @CRLF & _
DllStructGetData($a, 3) & @CRLF & _
DllStructGetData($a, 4))
;=========================================================
; 釋放為數(shù)據(jù)結(jié)構(gòu)分配的內(nèi)存
;=========================================================
$a = 0
provider with jb51.net (unicode) |