函数参考


DllStructGetSize

返回一个数据结构(struct)的大小,单位为字节.

DllStructGetSize ( 数据结构 )

参数

数据结构 由 DllStructCreate 函数返回的数据结构.

返回值

成功: 返回数据结构(struct)的大小,单位为字节.
失败: 返回 0.
@Error: 0 = 没有错误.
1 = 数据结构不是一个正确的由 DllStructCreate 返回的数据结构.

注意/说明

在使用数据时可能需要它控制数据结构的大小.

相关

DllStructCreate, DllStructSetData

示例/演示


;=========================================================
;   创建数据结构
;   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(4096,"","DllStructCreate 发生错误" & @error);
    Exit
EndIf

;=========================================================
;   设置数据结构中的数据
;   struct.var1 = -1;
;   struct.var2 = 255;
;   struct.var3 = INT_MAX; -1 将自动确定类型(unsigned 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)

;=========================================================
;   显示数据结构的信息
;=========================================================
MsgBox(4096,"DllStruct","数据结构大小: " & DllStructGetSize($a) & @CRLF & _
        "数据结构指针: " & DllStructGetPtr($a) & @CRLF & _
        "Data:" & @CRLF & _
        DllStructGetData($a, 1) & @CRLF & _
        DllStructGetData($a, 2) & @CRLF & _
        DllStructGetData($a, 3) & @CRLF & _
        DllStructGetData($a, 4))

;=========================================================
;   释放为数据结构分配的内存
;=========================================================
$a = 0