構造体

Type命令語で構造体を定義し、Dim命令語で構造体変数の宣言を行うことで構造体を利用することが可能になります。

Dim命令語で構造体名の前にアスタリスク(*)を表記すると、構造体ポインタを定義することができます。



構造体内のメンバ変数へのアクセス方法

[構造体名].[メンバ変数]
上のような表記で、構造体内のメンバ変数への代入、参照が可能になります。

例:

Type DATA_INFO
    a As Long
    b As Double
End Type

Dim DataInfo As DATA_INFO
DataInfo.a=10
DataInfo.b=20.123
MessageBox(0,Str$(DataInfo.a),Str$(DataInfo.b),MB_OK)



構造体ポインタが示すメンバ変数へのアクセス方法

[構造体名]->[メンバ変数]
上のような表記で、構造体ポインタが示すメンバ変数への代入、参照が可能になります。

例:

Type DATA_INFO
    a As Long
    b As Double
End Type

Sub SetDataInfo(p As *DATA_INFO)
    p->a=10
    p->b=20.123
End Sub

Dim DataInfo As DATA_INFO
Dim pDataInfo As *DATA_INFO
pDataInfo=VarPtr(DataInfo)
SetDataInfo(pDataInfo)
MessageBox(0,Str$(pDataInfo->a),Str$(pDataInfo->b),MB_OK)



※構造体、構造体ポインタは入れ子構造にすることが可能です。