在DLL文件中定义结构体
Type p
    X As Single
    Y As Single
End Type
Type da
    a() As p
end type
在模块中声明
Public data() As da问题:当我在事件中想使用数组时:redim data(0).a(0) 提示我 下标越界!求帮助。

解决方案 »

  1.   

    类型da里面的a()没有定义大小,就好像C里面的,它不过是个指针,指到什么地方都没说就好像:
    dim a() as 

    redim a(12) as 
    a(0)=你的可以:Dim d As da
    Dim xx() As pReDim xx(10)d.a = xx
    d.a(0).X = 1
      

  2.   

    你可以在代码顶部加上这一行代码。
    Option Base 0
      

  3.   

    看你的定义像是座标对,直接这样定义:
    Type p
      X As Single
      Y As Single
    End Type
    a() As pReDim a(10)
    a(0).X=10:a(0).Y=20
      

  4.   


    '你这样定义的用法如下:
    ReDim data(0)'要先定义这个
    ReDim data(0).a(0)'才能定义这个